在REST中建立关系的一般做法是什么?

时间:2011-11-17 00:19:59

标签: rest

如何在rest api中建模层次关系?

假设我想在相册中添加照片,我可以这样做。

1

发布www.example.com/photo 发布www.example.com/album 发布www.example.com/addPhotoToAlbum?photoId={photoId}&albumId={albumId}

或者我可以这样做

2

POST www.example.com/album/{albumId}/photo/ 但这样会暴露我的服务器架构。

3

POST www.example.com/album/addPhoto/albumId={albumId}

4

POST www.example.com/album/addPhoto/ 与Json字符串{“albumId”:123,“photoId”:43543}

5

POST www.example.com/album/photo?photoId = {}& albumId = {}

REST Api适用于CRUD操作,但在涉及如何建立关系时, 如果我们遵循面向对象的风格,#2就很棒。如果我们遵循数据库风格,#5很棒

如果我们使用样式#2,当我们想要为特定照片添加评论时,我们应该写这个 发布www.example.com/album/{albumId}/photo/{photoId}/comment/ 要不就 发布www.example.com/photo/{photoId}/comment /

问题:在REST中建立关系的一般做法是什么?

1 个答案:

答案 0 :(得分:1)

以下是一些有助于识别情况的有用点。

http://redrata.com/restful-uri-design/

当URLS很短且能够收藏时,我个人喜欢它。