使用 REST 发布项目列表

2023-11-20

当我有一个(长)项目列表想要发布到服务器时,我正在寻找如何序列化数据的约定。

例如,如果我有一个资源/users我想向它发布一个新的字段,我会对新用户的字段进行 http 编码,并将其放入请求正文中,如下所示:name=foo&age=20

但是如果我有一个用户列表,就像这样[{ name: 'foo', age: 20 }, { name: 'bar', age: 10 }],是否有常规的 POST 方式?

我在想name[0]=foo&age[0]=20&name[1]=bar&age[1]=10但我找不到任何东西来支持它。 Web 服务器通常接受/期望什么?


可能会改变我的答案的快速问题:您是直接从 HTML 表单发布还是期待更复杂的东西(例如 javascript 处理,或者甚至不是基于 Web 的客户端)

如果您有一个足够复杂的客户端,您可以只构造一个 JSON 字符串并使用内容类型的 POSTapplication/json。然后,无论处理 POST 的资源是什么,都可以使用任意数量的 json 库来读取发布的字符串并按原样进行处理。

进一步的漫谈:

您使用什么框架/语言来构建 REST 服务?他们有内置的功能/约定来帮助您吗?

例如,如果您使用 JAX-RS 构建服务,则有一个内置注释@FormParam它可用于处理发布的表单...例如:如果您发布了以下内容类型application/x-www-form-urlencoded: name=foo&age=20&name=bar&age=10

您可以通过以下方式在服务端检索并行列表:

@POST
@Consumes("application/x-www-form-urlencoded")
public void createUsers(@FormParam("name") List<String> name, @FormParam("age") List<String> age) {
    // Store your users
}

但是,您随后必须处理这样的问题:如果一个列表比另一个列表短/长,您如何解决这个问题?如果创建用户列表需要一个新字段或一个可选字段,会发生什么情况? (但正如我最初提到的,JSON 对象的 JSON 数组可以解决这个问题...有许多库支持 JAX-RS 中的自动 JSON 反序列化,或者也可以选择创建自己的消息体读取器.

(下一节的免责声明:我不了解 Rails,我的经验更多是在 Java 服务领域......我的基础是本指南)。看起来 Rails 有一个约定name[]=foo&name[]=bar自动将发布的数据处理到数组中,并采用类似的约定来填充结构,例如user[name]=foo&user[age]=20...如果您在轨道上,也许有某种方法可以使用/滥用这两个功能来获得所需的结果?

其他 REST 框架和语言可能有自己的约定和功能:)

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

使用 REST 发布项目列表 的相关文章

  • Java HttpURLConnection:内容长度计算

    我目前正在为 bitbucket issues RESTful API 开发一个库 我取得了很大的进步 现在我要解决这个部分更新问题 http confluence atlassian com display BBDEV Issues Is
  • 使用资源控制器的存储方法上的 Laravel 5.1 MethodNotAllowedHttpException

    我正在尝试利用资源控制器将记录添加到数据库 但是收到 MethodNotAllowedHttpException 错误 我已经经历过几个类似的问题 比如this https stackoverflow com questions 29327
  • 使用 authlogic_api 进行 Rails REST API 访问

    我正在为 Steam 游戏编写 Rails 后端 API 该游戏只能通过 REST 调用访问 因此不需要特定于用户的身份验证 我正在努力实施authlogic api 插件 http github com phurni authlogic
  • 当 Spring 控制器中接受 text/csv 标头时抛出异常时出现 406

    我有一个控制器 其方法返回文本 csv 这对于正常的成功案例来说效果很好 但是如果抛出异常 并且我有一个标题Accept text csv 我收到 406 响应 例如 RequestMapping value foo method Requ
  • REST URL 结构建议

    我正在尝试为我正在开发的网站的愿望清单部分敲定一个宁静的网址结构 这是一个非常简单的模型 用户可以有许多愿望清单 每个愿望清单可以包含许多产品 目前我有明显的 CRUD URL 来操作愿望清单本身 GET account wishlists
  • 如何正确处理 JWT 刷新?

    我有一个安卓应用程序 它连接到一个REST API开发与Jersey 我的 REST 端点通过令牌进行保护 下面是我生成它们的方法 Algorithm algorithm Algorithm HMAC256 secret String to
  • iPhone RESTful Web 服务

    然而 甚至不确定标题是否正确 我想做的是使用标准 NSURLConnection 类来处理调用我的 web 服务的响应 我使用 POST 方法更新数据库 使用 GET 方法从数据库检索行 我遇到的问题是这两个操作可能同时发生 因此处理请求的
  • WCF 服务契约将被 XML 和 Json 序列化

    我如何创建要加入的服务合同XmlSerializer 格式也WebMessageFormat Json在 WCF RESTful 服务中 我需要的是从 ASP Net 1 1 的代码后面调用 CallADSWebMethod 操作契约 该契
  • 如何向最终用户隐藏 REST API Url?

    是否可以隐藏我通过 AJAX 用于填充页面数据的 REST URL 我不希望其他人从我的 REST API 获取和使用 但需要使用它在我的网站中显示内容 如何向最终用户隐藏我的 REST API URL 无法在 JavaScript 中向最
  • 如何进行 REST 式更新?

    如果我有一个对象 请说Employee 我想提供两种不同的更新方式 更新绩效评级或更新联系信息 构建 API 的 REST 式方式是什么 我认为正确的方法是 POST 我担心的是 对于用户来说 首先获取对象的两个部分 绩效评级和联系信息 仅
  • 在 Flex 中以 HTTP Post 方式上传任意数据

    我们目前有一个 Java 小程序 可以生成大量数据并将其上传到我们的服务器 我们拥有的上传方法之一是使用 HTTP POST 到我们的服务器 其内容只是原始数据 没有多部分编码或任何内容 我正在考虑实现一个具有相同功能的 Flex 应用程序
  • 在 C# 控制台应用程序中使用 HttpClient 使用 WEB API

    我使用 MySQL 数据库在 Visual Studio 2015 中创建了一个 Web API API 运行完美 所以我决定做一个控制台client http www c sharpcorner com article web api w
  • Azure API Manager 将所有内容公开,摆脱 Ocp-Apim-Subscription-Key

    我有一些通过 Azure API 管理代理的 REST API 出于某种原因 我希望将其公开以应对所有请求 从开发人员的角度来看 我想摆脱在标头 或请求 中设置密钥 Ocp Apim Subscription Key XXXXXXXXXXX
  • 如何触发应用程序通过 REST 服务获取数据?

    我正在寻找一种方法来触发应用程序从远程 REST 服务获取数据 该方法不需要轮询 iOS 推送通知似乎不是一个选项 因为它可以被用户停用 然而 我可能是错的 是否有最佳实践来完成此任务 实际上 推送通知是可行的方法 在 ios8 及更高版本
  • JS Sapper:将数据发布到服务器(正确的方法?)

    如何使用 Sapper JS lib 正确地将数据发布到服务器 说 我有一个页面 板编辑器 我可以在其中从用 SVG 编写的六边形网格中选择 取消选择图块 并在存储数组中添加 减去十六进制坐标 然后用户填写一个表单 其中包含板 名称 作者和
  • 为什么“FormDataMultiPart”类型参数被区别对待

    我正在编写一个小网络应用程序 将文件上传到网络服务器 我一切正常 但令我感到困惑的是 几乎所有从客户端 浏览器 发送的参数都必须在服务器端注入单词 FormDataParam except FormDataMultiPart类型参数 有人可
  • Access-Control-Allow-Headers 不允许请求标头字段 Access-Control-Allow-Headers

    我试图通过发布请求将文件发送到我的服务器 但是当它发送时会导致错误 Access Control Allow Headers 不允许请求标头字段 Content Type 所以我用谷歌搜索了错误并添加了标题 http post rootSc
  • 如何在 Flask 中获取 POSTed JSON?

    我正在尝试使用 Flask 构建一个简单的 API 现在我想在其中读取一些 POSTed JSON 我使用 Postman Chrome 扩展进行 POST 我 POST 的 JSON 很简单 text lalala 我尝试使用以下方法读取
  • 在 Angular 中让多个调用等待同一个 Promise

    我在一个页面上有多个使用相同服务的控制器 为了举例 我们将服务称为 USER 第一次调用 USER getUser 时 它会发出 http 请求来获取有关用户的数据 调用完成后 它将数据存储在 USER data 中 如果再次调用 USER
  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话

随机推荐