我应该如何更新 REST 资源?

2024-04-21

我不确定应该如何更新 REST 资源的各个属性。考虑以下示例:

# HTTP GET to /users/1.xml
<?xml version="1.0" encoding="UTF-8" ?>
<response>
   <user>
      <id>1</id>
      <name>John Doe</name>
      <email>[email protected] /cdn-cgi/l/email-protection</email>
   </user>
</response>

我应该如何帮助更新约翰的电子邮件?HTTP PUT我想到了,但是如果我要求完整的 XML(与 HTTP GET 响应匹配)来修改资源,就会给我的客户带来困难。

PUT 方法要求 封闭的实体存储在 提供的请求 URI。如果 Request-URI 指的是已经 现有资源,封闭实体 应该被视为修改过的 驻留在的版本 源服务器。

还有其他办法吗?


如果您的服务器框架足够灵活来处理它,您可以这样做:

Request:
PUT /users/1/email
Content-Type: text/plain

[email protected] /cdn-cgi/l/email-protection

Response:
200 OK
Content-Location: /users/1

通过使用 URL 将电子邮件视为其自己的资源,您可以使用文本/纯文本等简单格式直接对其进行 PUT。在响应中,Content-Location url 向客户端指示更改已对用户资源产生影响。

PATCH 方法也是进行部分更新的另一种方法。这是一种新引入的方法,目前还没有用于发送 XML diff 文档的标准格式。因此,如果您采用这种方法,您将找不到太多指导。

另一件需要考虑的事情是,REST 最适合大粒度更新。如果您发现自己需要进行这些小的更改,那么也许您需要重新考虑您的分布式架构。

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

我应该如何更新 REST 资源? 的相关文章

  • PHP:在 CURL GET 调用中使用 API 密钥

    我看过关于使用 api 密钥在curl 中验证 post 调用的帖子 我有一个 GET 调用 需要 apikey 进行授权 即请求必须具有包含 apiKey 的授权标头 我已经获得了 api 密钥并尝试将其用于 GET 调用
  • LinkedIn Groups API - 在单个 API 请求中获取多个群组的群组徽标

    Using LinkedIn 群组 API http developer linkedin com documents groups api 我正在显示用户在 LinkedIn 上所属的组列表 使用以下命令可以清楚地在一次调用中获取组列表
  • 以 RESTful 方式增加资源计数器:PUT 与 POST

    我有一个带有计数器的资源 为了举例 我们将该资源称为profile 计数器是数量views对于该配置文件 Per the 休息维基 http rest blueoxen net cgi bin wiki pl HttpMethods PUT
  • 当会话令牌无效时,我应该使用什么状态代码?

    创建 Web 服务 RESTful 时 当会话令牌无效时我应该使用什么状态代码 目前我公司的人给我发了一个404 未找到 但我认为这是不正确的 因为资源存在 也许我应该使用 401 Unauthorized 你怎么认为 您建议我在这种情况下
  • REST Web 服务 WSDL? [复制]

    这个问题在这里已经有答案了 我正在实现一个 Web 服务 并且已经实现了 REST 和 SOAP 版本 看看哪个版本适合我的需求 我决定选择 REST 因为它很简单 而且我可能会开发一个 iPhone 应用程序来使用它 我的问题很简单 是否
  • 获取/发布到 RESTful Web 服务

    我需要从 VB6 对 RESTful Web 服务进行一些 GET 和 POST 操作 最好和最简单的方法是什么 您需要添加对 MSXML 库的引用 Dim sUrl As String Dim response As String Dim
  • 如何获取数组作为 GraphQL 解析器的输入

    我想得到一个字符串数组ids查询变量中的参数并在我的解析器中使用它 下面是我的代码 People resolver ts import Resolver Query Mutation Args from nestjs graphql imp
  • Apache Camel 2.14 Rest DSL 安全

    我想使用 Apache Camel 2 14 中新的 Rest DSL 来创建一个 Rest 接口 我想使用 Jetty 组件 并且我有一个如下所示的基本示例设置 Spring安全配置
  • 通过 PayPal REST API 示例获得折扣?

    PayPal GURUS 我需要帮助 如何插入折扣 我使用 REST API 可能是某个 可以显示代码示例吗 有什么方法可以使用 PHP REST API 发送折扣金额吗 目前 REST 支付 API 不支持折扣 您最好的选择是计算您端的折
  • 对于一般不成功的请求(不是错误),适当的 HTTP 状态代码响应是什么?

    我正在创建一个 RESTful API 它将处理许多用户交互 包括使用存储的信用卡下订单 如果订单成功 我将返回 200 OK 如果订单请求格式错误或无效 我将返回 400 Bad Request 但如果订单实际处理过程中出现问题 我该怎么
  • 如何为 cxf jax-rs 2.0 客户端注册 jackson json 提供程序?

    我有一个 JAX RS 客户端正在发出一个简单的 GET 请求 我使用 CXF 实现和 Spring 进行 DI 呼叫成功 我收到响应代码 200 但是在将响应读入 POJO 时出现错误 例外 2015 05 08 16 11 55 457
  • Yii2 Rest - 自定义操作和 OPTIONS 方法

    我在 UsersController 类中执行以下操作 login 路由操作时遇到问题 public function actionLogin data Yii app gt getRequest gt getBodyParams mode
  • Rails RESTful 资源对包含分隔符的字段使用 to_param

    我希望我的 Rails 2 3 2 应用程序能够响应并生成 URL 如下所示 websites asd com websites asd com dns records new 在我的 config routes rb 中 我有 map r
  • 凭证过期错误/异常的 HTTP 状态代码应该是什么?

    我正在开发 RESTful API 我已经实现了基于令牌的身份验证 其中令牌摘要是使用时间戳准备的 现在 当请求到达 API 服务器时 我正在检查提供的时间戳是否无效 即指定了未来 过去的日期时间 然后抛出错误消息 指示 检测到未来令牌 或
  • 为持久任务创建 REST API 的最佳方法?

    假设我有 2 台服务器 第一个是提供一些计算的服务 该计算可以持续很长时间 几分钟到几小时 第二个服务器将使用此服务来计算一些数据 我正在尝试为第一台服务器设计一个 REST API 到目前为止一切顺利 但我想听听一些关于如何在长期任务完成
  • 如何使用 php Restful 以 api 为中心的内部设计而不是使用 http 请求

    我想创建一个以 php Restful api 为中心的 Web 应用程序 网站 其中有从前端代码调用的数据 api 除了每次加载页面时进行 HTTP curl 请求调用之外 使用 slim 等框架进行内部 API 调用还能做什么 我不确定
  • 计算 REST API 的 ETag

    我们正在构建我们使用的 REST APIETag https en wikipedia org wiki HTTP ETag有两种用途 通过允许客户端避免重新加载资源来节省带宽 对我们来说并不重要 解决并发问题 丢失更新问题 从实际角度来看
  • REST API - 如何查询链接发现?

    假设我有一个 RESTful HATEOAS API 其中有 posts列出带有查询快捷方式的帖子的端点 posts new 如何查询 API 来发现 posts new 我的想法 1 Query posts并从以下位置获取链接 links
  • 如何通过HBase REST服务获取Phoenix表数据

    我使用 Phoenix JDBC 驱动程序在以下代码片段中创建了一个 HBase 表 Class forName org apache phoenix jdbc PhoenixDriver Connection conn DriverMan
  • 使用 django 和 tastypie 通过 RESTful api 发布文件

    我正在为 Django 网站创建 RESTful api 我在用tastypie https github com toastdriven django tastypie因为这样做 我的问题是我无法设计如何通过此 api 发布图像或文件 我

随机推荐