当前位置: 首页 > 知识库问答 >
问题:

用于更新资源和创建关联对象的RESTful方法

范翰飞
2023-03-14

我正在为一个提供临床数据分析的服务设计一个REST风格的API。API允许用户创建患者资源。此资源为服务器端分析提供输入数据。

创建患者既不安全,也不等幂(服务器分配ID),因此使用POST,对患者进行POST

患者资源可能很大,因此它有可以更新的子资源,例如药物。更新药物是幂等的,因为整套药物将被替换,因此使用PUT。

临床分析由请求后/患者/{patientId}/analysisResults触发。或者,用户可以请求在对POST/患者请求的响应中返回分析结果;这将节省额外的HTTP往返。

我的问题是这样的;用户希望分析结果包含在对患者/药物的更新(PUT)的响应中-可以理解,因为他们不想发出第二个请求来检索结果。因此PUT患者/药物对于患者资源来说是幂等的,但对于所有资源来说不是幂等的,因为将创建一个新的分析结果子资源。我应该:

  • a) 通过PUT启用此功能

共有1个答案

吴弘壮
2023-03-14

如果你想保持安静,选择C。

选项A和B很可能会削弱REST为您提供的属性,缓存是您直接想到的。

如果这是基于HTML的,则响应将包括指向analysisReport资源的链接,以允许用户将应用程序驱动到有用的地方。

 类似资料:
  • 通常,我使用以下资源URI方案构建RESTful API: 产品还可能包含产品功能。当我想获取一些产品的特性时,我会执行一个get/products/{id}/features。 顺便说一句,如果我想向给定产品添加新功能,通常我不会提供这样的资源URI:,但我认为是给定产品的一部分,因此,我更新哪些特性可能包含以下特性: 另一方面,如果我想更新一些功能元数据,我不会使用产品资源,但我会执行如下请求

  • 我正在开发我的第一个RESTful api,这(不幸的是)是在一个已经存在的系统上完成的,想法是允许第三方访问这个系统。 一切都很好,直到我意识到我有多种方法来访问相同的资源。我将尝试使用系统的一部分来解释它。该系统是使用Laravel 5.8构建的,其中包括以下数据库表: 用户 电子邮件 短信 每个用户可以有许多电子邮件,并且每个电子邮件只属于一个用户。这同样适用于短信。 我“忽略”了当前的所有

  • 我想知道如何设计一个RESTFUL api,用于一次性创建一个资源及其相关资源。 例如,我想使用RESTFUL API创建一个包含项目列表的订单,例如: null 那么,将项目放在请求正文中,并只向发布一次是一种好方法吗?还是针对这种情况有其他更好的设计? 谢谢你!

  • 我正在使用Spring Data REST,并且我正在尝试使用Spring REST更改多对一关系,但是我无法获得正确的http调用来工作。 我的实体看起来是这样的(基本的调用,如创建与POST等工作良好): 不幸的是,http://docs.spring.io/spring-data/rest/docs/2.0.1.release/reference/html/上的主要参考文献没有提供关于上述主

  • 我有一个文件位于/res/introducted。xml。我知道我可以通过两种方式访问它: 1) R.引入的资源 2)一些绝对/相对URI 我正在尝试创建一个File对象以将其传递给特定的类。我该怎么做?