【问题标题】:REST - Post a JSON list, or multiple Posts?REST - 发布一个 JSON 列表,还是多个帖子?
【发布时间】:2012-07-27 14:28:52
【问题描述】:

给定两个模型:Person,它有任意数量的Jobs,用他的工作列表提交一个新的人的最 REST 方式是什么?

我想到的两个显而易见的选择是使用他的 Jobs 列表对 Person 对象进行 JSON 化。

"{"name":"ngmiceli",
  "jobs":[
      {"info":"foobar"},
      {"info":"lorem ipsum"},
      {"info":"ni!"}]}"

将其粘贴在正文中,发送 Post 请求,然后继续。

第二个明显的模型会更加分散。

  • 使用"name"="ngmiceli" 发布新人员
  • 向该人发布新工作。 (重复 3 次)

这两个操作将分别有一个 API 控制器,但如果此应用程序的目的是工作,并且一个人没有工作就相当没有意义(甚至无效),那么提交庇隆模型他/她的工作吗?

最后,我阅读了有关批量更新的信息,您可以在其中发送构成第二个选项的 Post 请求列表,但在单个批处理 Post 中。

如果重要的话,请求将由 javascript 生成并在 C# web-api 中处理,并通过实体框架与数据库进行通信。

【问题讨论】:

  • 注意:我阅读了this 的帖子,但由于上下文关系,它并没有真正回答我的问题
  • 第一个模型很好,前提是可以接受。
  • 一次性完成并没有什么不符合 RESTful 的。我将创建一个方法来消耗人员和工作列表,以将 POST 到服务器的开销降至最低。服务器端我当然会把它分开。
  • 将其设为可选。在 PayPal API 中,当获取 Transaction 时,您可以获取整个 User 对象,或者通过简单地传递一个附加参数来获取它的一个简单版本。可能是您可以考虑做的事情吗?
  • 我想我担心的是传递这样一个包含列表的综合项目是不安的,但这里的普遍共识是它没有任何问题。谢谢大家;如果我误解了,请告诉我

标签: c# json entity-framework rest asp.net-web-api


【解决方案1】:

数字 1 没有任何非 RESTful。即使应用程序不是以人为中心的,Person 也是应用程序中的有效资源。

寻求更简单的解决方案。

【讨论】:

    猜你喜欢
    • 2018-02-04
    • 2016-04-11
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多