url的适当端点,该url包含提及父资源的子资源

  • 本文关键字:url 资源 包含提 端点 rest
  • 更新时间 :
  • 英文 :


用户可以被分配到作业,这由memberJobAllocation表示。我想创建一个api端点来获取针对一个作业的所有memberJobAllocations;我想使用url"Job/{id}/memberJobAllocations"。这看起来像是一个奇怪的api端点,因为第一部分("Job/"(已经指示分配是针对作业的。

url可能只是"Job/{id}/memberAllocations"吗?这可能读起来更好,但如果我想创建另一个端点来获得memberJobAllocation,它必须是"memberJobAllocation/{id}",因为"memberAllocation/{id}"没有太多说明。在我的API中,memberJobAllocation资源可以有两个不同的名称吗?

哪种方法会更好?rest是否强制资源的名称应该完全匹配,或者是否有一些灵活性?

rest是否强制资源的名称应该完全匹配,或者是否有一些灵活性?

REST只坚持标识符符合RFC 3986所描述的生产规则。

为了便于人类消费者理解,您需要使用与";外观和感觉;API的其他部分,但机器不在乎。

因此:

我想使用url"Job/{id}/memberJobAllocations"。

是的,没关系。

url可能只是"Job/{id}/memberAllocations"吗?

也可以。

在我的API中,memberJobAllocation资源可以有两个不同的名称吗?

没有,但有点。就REST而言,如果您有两个不同的资源标识符,那么您就有两种不同的资源(文档(。但是,两个不同的文档呈现相同的信息(即,从相同的底层源构建(是完全可以的。

就客户端(以及更广泛地说,所有通用组件(而言,这两个文档是完全独立的——使其中一个文档无效对另一个文档的缓存表示没有影响。如果单个客户端可能从两个不同的资源中检索相同的信息,那么您需要考虑如果这两个资源中的信息是";不同步";。

最新更新