Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
REST—资源的可寻址性(组合、集合)_Rest_Api Design_Restful Url - Fatal编程技术网

REST—资源的可寻址性(组合、集合)

REST—资源的可寻址性(组合、集合),rest,api-design,restful-url,Rest,Api Design,Restful Url,我正在设计一个REST-API,目前我遇到了以下问题。例如,我得到了以下结构: /foods/fruits/{fruit} /foods/meat/{meat} 例如: /foods/fruits/apple /foods/fruits/pineapple /foods/meat/chicken 每个端点都是唯一的(只有一个苹果,一只鸡),但是可以存在不同种类的水果(例如菠萝)。 但是,我的服务也需要返回 一种特定的水果(苹果) 所有水果(收集资源包含所有可访问的水果-->苹果、菠萝) 或

我正在设计一个
REST-API
,目前我遇到了以下问题。例如,我得到了以下结构:

/foods/fruits/{fruit}
/foods/meat/{meat}
例如:

/foods/fruits/apple
/foods/fruits/pineapple
/foods/meat/chicken
每个端点都是唯一的(
只有一个苹果,一只鸡),但是可以存在不同种类的
水果(例如菠萝)。
但是,我的
服务
也需要返回

  • 一种特定的水果(苹果)
  • 所有水果(收集资源包含所有可访问的水果-->苹果、菠萝)
  • 或整个食物(水果和肉类收集资源的组成)
通过这种设计,我的资源可以寻址大约3个
uri
组合、集合、端点
),但它的最大值应该是2。 这是一个restful设计吗?

看看,您可以拥有一个通用的
食物
资源和端点,具有类型和名称等属性,然后您的需求可以像这样访问:

  • GET/api/food?name=apple
  • GET/api/food?type=水果
  • GET/api/food
查看,您可以拥有一个通用的
食品
资源和端点,具有类型和名称等属性,然后您的需求将可以如下访问:

  • GET/api/food?name=apple
  • GET/api/food?type=水果
  • GET/api/food
通过这种设计,我的ressource可以寻址大约3个URI(组合、集合、端点),但它的最大值应该是2。这是一个宁静的设计吗

您能为指南提供一个参考,它应该是最大值2吗

但无论哪种方式-这三个URI不是同一资源的三个不同URI,而是三个不同的资源:

  • 食物资源
  • 一种特殊类型的食物的集合
  • 一种特殊的食物
  • 虽然早期资源可以被认为是由其他资源组成,但这并不意味着最细粒度(特定类型,例如苹果)可以通过3个URI寻址

    如果您使用的是超媒体格式,例如您的合成表示,则可以使用嵌入式资源,这清楚地表明,所包含的资源也可以通过其自己的端点直接使用

    通过这种设计,我的ressource可以寻址大约3个URI(组合、集合、端点),但它的最大值应该是2。这是一个宁静的设计吗

    您能为指南提供一个参考,它应该是最大值2吗

    但无论哪种方式-这三个URI不是同一资源的三个不同URI,而是三个不同的资源:

  • 食物资源
  • 一种特殊类型的食物的集合
  • 一种特殊的食物
  • 虽然早期资源可以被认为是由其他资源组成,但这并不意味着最细粒度(特定类型,例如苹果)可以通过3个URI寻址


    如果您使用的是超媒体格式,例如您的作文表达,则可以使用嵌入式资源,这清楚地说明所包含的资源也可以通过其自己的端点直接使用。

    没有人有想法?没有人有想法?谢谢您的回答。我想这可能会有帮助。谢谢你的回答。我想这可能会有帮助。