如何在rest api中建模层次关系?
假设我想在相册中添加照片,我可以这样做。
发布www.example.com/photo 发布www.example.com/album 发布www.example.com/addPhotoToAlbum?photoId={photoId}&albumId={albumId}
或者我可以这样做
POST www.example.com/album/{albumId}/photo/ 但这样会暴露我的服务器架构。
或
POST www.example.com/album/addPhoto/albumId={albumId}
或
POST www.example.com/album/addPhoto/ 与Json字符串{“albumId”:123,“photoId”:43543}
或
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中建立关系的一般做法是什么?