gpt4 book ai didi

java - RESTful Web 服务,如何设置路径

转载 作者:行者123 更新时间:2023-11-30 07:21:29 26 4
gpt4 key购买 nike

我正在按照 REST 样式创建 Web 服务,因此我使用的是 JAX-RS。但是,问题是更一般的形式,因此技术应该无关紧要。

假设您的系统中有三种资源。测验、问题和问题反馈。现在假设您为测验资源创建路径:/quiz

一个测验对象有一个问题列表,每个问题都有一个反馈列表。

我还有一个问题路径:/questions 并且您可以POST 对问题的子资源(这是正确的术语吗?)的反馈,所以让说:/question/1/feedback

然而,这条路径也应该通过测验可用吗?对此是否有任何规则,或者这取决于开发人员(当然是..,但通常如此)?

示例:/quiz/questions/1/feedback。我想问的是边界在哪里。您是否应该在嵌套路径中提供相同的操作,就像您在“顶级”路径中所做的一样?

最佳答案

我们一直在 Web 服务实现中使用组合与聚合规则。基本前提是组合的资源的生命周期完全由其父资源管理。而聚合的那些仅从关联的角度进行管理

因此,给定一个父资源,我们(通常)将 HTTP 动词映射到子资源上的管理操作,如下所示:

           Composition       AggregationPOST          create           associateGET            read               readPUT           update           reassociateDELETE        delete           disassociate

对于复合 GET,我们定义了足够的端点来完全查询子资源。对于聚合 GET,我们只返回足够的信息来定义实际端点以进行完整查询。

如果我们编写一个 Quiz API,我们将有

  • /quiz/questions/1
  • /问题/1
  • /问题/1/反馈

但不是:

  • /quiz/questions/1/feedback

关于java - RESTful Web 服务,如何设置路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13357029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com