我正在设计一个REST-API
,目前我仍然坚持以下问题。例如,我得到以下结构:
/foods/fruits/{fruit}
/foods/meat/{meat}
例如:
/foods/fruits/apple
/foods/fruits/pineapple
/foods/meat/chicken
每个端点都是唯一的(only one apple, one chicken
),但可以存在不同种类的fruits
(例如菠萝)。
但是我的service
需要返回
使用此设计,我的资源可以解决约3 URIs
(composition, collection, endpoint
),但它应该是2的最大值。
这是一个宁静的设计吗?
答案 0 :(得分:2)
查看Richardson Maturity Model,您可以拥有一个通用Food
资源和端点,其中包含类型和名称等属性,然后您的需求就可以访问:
GET /api/food?name=apple
GET /api/food?type=fruit
GET /api/food
答案 1 :(得分:1)
使用这种设计,我的资源可以解决3个URI(组合,集合,端点),但它应该是2的最大值。这是一个宁静的设计吗?
您是否可以为指南提供最大值为2的参考?
但无论哪种方式 - 这三个URI对于同一资源不是3个不同的URI,它们是三种不同的资源:
虽然可以认为较早的资源由其他资源组成,但这并不意味着最精细的颗粒(特定类型,例如苹果)可以通过3个URI进行寻址。
如果您使用的是超媒体格式,例如HAL,则您的合成表示可以使用嵌入式资源,这清楚地说明所包含的资源也可以通过自己的端点直接使用。