首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RESTful API关系、终结点和方法的最佳实践

RESTful API关系、终结点和方法的最佳实践
EN

Stack Overflow用户
提问于 2014-02-18 20:43:12
回答 1查看 175关注 0票数 2

假设我在我的申请中有不同的模型:地点,客人,预订,购买,桌子。什么是“正确”的方式来嵌套这些关系?比如..。

  • 通过预订,会场有很多客人。
  • 一位客人通过预定在一个地点购买很多东西。
  • 预订的客人很多
  • 场地有很多预约。
  • 一个场地有很多桌子

..。以此类推。

我应该(用标准的,RESTful CRUD).

代码语言:javascript
复制
/api/venues/{venue_id}/reservations
/api/venues/{venue_id}/reservations/{reservation_id}/purchases
/api/venues/{venue_id}/reservations/{reservation_id}/guests 
/api/venues/{venue_id}/tables

还是预订、购买和客人都应该在一个单独的资源中?比如,

代码语言:javascript
复制
/api/reservations
/api/tables

并接受参数,如guest_id、item_id (用于购买)、table_id (用于表)等。

如果我想查看关系中的单个资源,我应该做什么?

我意识到这没有“硬性规定”,但从长远来看,最好的做法是什么呢?为什么?

EN

回答 1

Stack Overflow用户

发布于 2014-02-18 22:13:10

我认为应该只有一种方法从API中获取数据。所以你选择一种或另一种方法。

让我们考虑一下guests

如果你愿意

代码语言:javascript
复制
/api/venues/{venue_id}/reservations/{reservation_id}/guests

每次我们需要预订客人时,都需要venue_id。更重要的是,当我们需要一个特定的客人

代码语言:javascript
复制
/api/venues/{venue_id}/reservations/{reservation_id}/guests/{guest_id}

venue_idreservation_id都是必需的。

这绝对有必要吗?好吧,为了授权,也许是的。但是

代码语言:javascript
复制
/api/guests/{guest_id}

是更“安全”和灵活的方法,它可以要求或不需要venue_idreservation_id在特定情况下。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21864878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档