何时在RAML中使用单个或多个资源名称

时间:2016-10-12 10:59:44

标签: resources mule anypoint-studio raml

我正在为Mule项目编写我的第一个RAML,并对命名约定进行了查询。目前,我有一个要求,即客户只需支付一笔款项。所以我有/支付资源。如果以后引入了能够进行多次付款的新要求,那么如何在RAML中显示资源?

单笔付款的资源是否类似于POST:/ payments / payment

我被告知路径不应超过4个级别,所以我认为上述标准在某些情况下很容易超过4个级别,而且我可能会在每个单个和多个资源名称下重复GET和POST等。一个区别是请求是一个集合而不仅仅是一个对象。

另外,如果我正在查看资源,例如客户的订单应该包括订单资源,例如 GET:/ customer / {customerId} / order / {orderId} 或者最好直接进入orderId? GET:/ customer / {customerId} / {orderId}

最后,我应该何时使用参数或资源URI?

我在网上看到了很多例子,但到目前为止的惯例并不多,所以只是想检查一下我的理解是否正确,以免将来重写。

由于

2 个答案:

答案 0 :(得分:0)

这个链接是很好的资源。 http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api

我认为没有既定规则,我一直遵循复数形式,而奇点是基于服务电话的语境。

获取:/ customers / - 获取所有消费者 GET:/ customer / {customerId} - 获取单一客户

  

最好直接进入orderId吗?

最佳做法是突出显示客户之间的关系//订单//商品// ..

答案 1 :(得分:0)

单数用于单例资源,它返回单个对象,例如users/{userID}/adress。 HTTP方法:

  • GET / HEAD(get)✅
  • POST(创建)❌
  • PUT(替换)✅
  • PATCH(部分更新)✅
  • 删除(删除)❌

复数用于收集资源,它返回对象列表,例如users/{userID}/orders/ HTTP方法:

  • GET / HEAD(get)✅
  • POST(创建)✅
  • PUT(替换)❌
  • PATCH(部分更新)✅用于集合中的批量更新对象
  • 删除(删除)❌

实体在集合资源中用作id的子资源,例如users/{userID}。 HTTP方法:

  • GET / HEAD(get)✅
  • POST(创建)❌
  • PUT(替换)✅
  • PATCH(部分更新)✅
  • 删除(删除)✅