確定API的URL結(jié)構(gòu)時,考慮把所有的資源放置于單一“關(guān)聯(lián)文檔"是有用的,在關(guān)聯(lián)文檔中,每個資源都被分配唯一路徑。在文檔頂層,資源依據(jù)類型分組。在分類資源集合中,單獨資源通過ID索引。其屬性和links,依據(jù)資源對象結(jié)構(gòu),唯一分配。
關(guān)聯(lián)文檔的概念,用于為資源及資源關(guān)系確定合適的URLs。重要的一點,出于不同目標(biāo)和限制,用于傳輸資源的不同文檔中,關(guān)聯(lián)文檔的結(jié)構(gòu)有輕微差異。例如,在關(guān)聯(lián)文檔中的資源集當(dāng)做集合處理,因為元素必須通過ID訪問,在傳輸文檔中的資源集當(dāng)做數(shù)組處理,因為順序比較重要。
資源集合的URL應(yīng)該依據(jù)資源類型確定。
例如,”photos”類型的資源集合應(yīng)該使用這種URL:
/photos
資源集應(yīng)該作為集合,依據(jù)資源ID索引。單獨資源的URL通過為集合URL添加資源ID生成。
例如,ID為"1"的photo使用這種URL:
/photos/1
多個單獨資源的URL通過為集合URL添加逗號分隔的資源IDs列表生成。
例如,IDs為"1", "2", "3"的photos使用這種URL:
/photos/1,2,3
資源的替代性URLs可以選擇在響應(yīng)中指定,或者通過"href"或URL模板指定。
添加/links/<relationship-name>到資源URL后面,即得到訪問特定資源的關(guān)聯(lián)資源URL。相對路徑與資源對象內(nèi)部結(jié)構(gòu)保持一致。
例如,photo的comments鏈接集使用這種URL:
/photos/1/links/comments
A photo's reference to an individual linked photographer will have the URL: photo的photographer鏈接使用這種URL:
/photos/1/links/photographer
服務(wù)器使用單獨資源響應(yīng)單對象關(guān)聯(lián),使用資源集合響應(yīng)多對象關(guān)聯(lián)。