PATCH 方法是否应该返回响应正文中资源的所有字段?

2024-01-05

PATCH 方法是否应该返回响应正文中资源的所有字段?
或者它应该只返回更新的字段?

我正在阅读this https://www.rfc-editor.org/rfc/rfc7386

例如,如果它只返回更新的字段,则用户可以知道服务器中哪些字段被更新,而用户也更新了某些字段。

**Users resource representations**
name: string
age: number
createdon: date
modifiedon: date

PATCH /users/{userId}
Request body
{
  name: 'changedname',
}

Response body Case1
{
  name: 'changedname',
  age: 20,
  createdon: 2016-01-01,
  modifiedon: 2016-06-09
}

Response body Case2
{
  name: 'changedname',
  modifiedon: 2016-06-09
}

通常这应该通过处理内容协商 https://en.wikipedia.org/wiki/Content_negotiation。换句话说,客户asks如果需要的话,获取特定的表示。该请求将如下所示:

PATCH /user/123
Content-Type: application/merge-patch+json
Accept: application/vnd.company.user+json
...

在这种情况下,客户表示希望获得完整的user代表作为答案。或者它可以这样做:

PATCH /user/123
Content-Type: application/merge-patch+json
Accept: application/vnd.company.object-fragment+json
...

请求某个对象的通用片段表示。

如果您不想,则不必同时实现两者,在这种情况下,您只需执行您的用例并响应406 Not Acceptable to media-types你暂时不支持。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PATCH 方法是否应该返回响应正文中资源的所有字段? 的相关文章

  • WCF WebHttp 混合身份验证(基本和匿名)

    所有这些都与 WebHttp 绑定有关 托管在自定义服务主机中 IIS 目前不是一个选项 我已经实现了自定义 UserNamePasswordValidator 和自定义 IAuthorizationPolicy 当我将端点的绑定配置为使用
  • 自托管 WCF REST 服务和基本身份验证

    我创建了一个自托管的 WCF REST 服务 带有 WCF REST Starter Kit Preview 2 中的一些额外内容 这一切工作正常 我现在正在尝试向服务添加基本身份验证 但我在 WCF 堆栈中遇到了一些相当大的障碍 这阻止了
  • 注册期间现有电子邮件的 422 或 409 状态代码

    我正在构建 RESTful API 遇到了一种情况 在用户注册期间 如果电子邮件已存在 则在422 and 409哪个http响应代码有意义 我浏览过类似的one https stackoverflow com questions 9269
  • 是否可以将 RestAngular.setBaseUrl 用于两个 api 访问点?

    是否可以使用具有 2 个不同 API 的 Restangular 来工作 我想拥有setBaseUrl 对彼此而言 只需创建两个或多个 Restangular 服务并根据需要配置它们 然后注入您想要使用的模块 UPDATE 这段代码来自 r
  • 为 NFL api 生成访问令牌

    NFL 有一个 API 服务 link https api nfl com docs getting started index html https api nfl com docs getting started index html
  • put方法中的Angularjs文件上传不起作用

    我有一个简单的待办事项应用程序 我试图在其中上传照片和单个待办事项 现在我已经创建了这个工厂函数来负责待办事项的创建 todosFactory insertTodo function todo return http post baseUr
  • 使用 PHP PayPal REST API 退款?

    我正在开发一个集成到 PayPal 的 REST API 中的 PHP 应用程序 我正确处理了事务并将事务 ID 保存到 MySQL 数据库中 我现在正在尝试退款 但无法让它停止给出 传入 JSON 请求未映射到 API 请求 错误 有人对
  • 在 HTTP 标头中发送 UTF-8 值会导致 Mojibake

    我想使用 servlet 发送阿拉伯语数据HTTPServletResponse给客户 我正在尝试这个 response setCharacterEncoding UTF 8 response setHeader Info arabicWo
  • git 是否有任何静态接口?

    我一直在寻找一个宁静的 git api 但似乎没有找到 我得到的最接近的是 Github 的 api 来访问一些存储库信息 还有其他的实施吗 Orion Git API http wiki eclipse org Orion Server
  • 如何为新的 Silverlight 应用程序在 WCF、REST、POX 和 RIA 服务之间进行选择

    There a lotSilverlight 应用程序连接回其服务器的不同方式 包括 WCF Windows 通信基础 http msdn microsoft com en us netframework aa663324 aspx RES
  • Wiremock:如何匹配没有特定属性的 JSON 请求?

    我正在尝试模拟一个在 POST 中接受 JSON 正文的 API 调用 它有两种可能的响应 如果身体含有SearchCenter属性 回答 A 如果正文不包含SearchCenter 回答B In the 请求匹配 http wiremoc
  • 我可以从 HTTP 请求中找到无线接入点的 BSSID(MAC 地址)吗?

    假设有人在咖啡店里无线连接到互联网 并向 johnsveryownserver com 发送 HTTP 请求 服务器端 有什么方法可以确定我的MAC地址吗 无线接入点他们连接到什么 请注意 我对他们机器的 MAC 地址不感兴趣 如果我无法使
  • 尝试克隆一个 git 存储库,但它卡在克隆到中

    我使用的是 Windows 10版本 10 0 19042 内部版本 19042 GIT Ver 2 32当尝试使用 git bash 执行以下命令时git clone depth 1 b carla https github com Ca
  • 如何使用 Java 以正确的编码检索 HTML 页面?

    如何使用页面编码中的 HTML 页面读取 HTTP 流 这是我用来获取 HTTP 流的代码片段 输入流读取器有编码可选参数 但我不知道如何获取它 URLConnection conn url openConnection InputStre
  • Go客户端程序生成大量TIME_WAIT状态的socket

    我有一个 Go 程序 它从多个 goroutine 生成大量 HTTP 请求 运行一段时间后 程序报错 connect cannot allocaterequestedaddress 当检查时netstat 我得到大量 28229 个连接T
  • 如何设置响应文件名而不强制“另存为”对话框

    我在某些响应中返回一个流 设置适当的content type标头 我正在寻找的行为是这样的 如果浏览器能够呈现给定内容类型的内容 那么它应该将其显示在浏览器窗口中 如果浏览器不知道如何呈现内容 那么它应该显示 另存为 对话框 其中文件名应该
  • C# HTTP 请求解析器[重复]

    这个问题在这里已经有答案了 可能的重复 将原始 HTTP 请求转换为 HTTPWebRequest 对象 https stackoverflow com questions 318506 converting raw http reques
  • 使用 Facebook 进行身份验证的网站的 REST API

    我们有一个网站 其中only登录网站并进行身份验证的方式是使用 Facebook 这不是我的选择 当您第一次登录 Facebook 时 系统会自动为您创建一个帐户 现在 我们希望为我们的网站创建一个 iPhone 应用程序 并为其他人使用我
  • @Valid 不适用于弹簧休息控制器

    我将休息端点方法定义为 GetMapping get public ResponseEntity getObject Valid MyObject myObject 这会将请求参数映射到 MyObject MyObject 定义为 带有 l
  • 以 REST 方式更新整个资源集合

    我有一个资源列表的 REST URI 例如 http foo com group users 这些用户中的每一个都有一个序列号 我想公开一种方法来为集合中的所有用户重新编号这些值 并使访问该列表的每个人都可以使用此更改 由于这是对整个集合的

随机推荐