【发布时间】:2019-07-16 14:47:12
【问题描述】:
假设我正在跟踪食谱、成分和作者。我有一个表格,用户可以填写该表格来创建食谱,添加和/或链接适当的成分,然后添加和/或链接作者。因此,如果我要单独执行此操作,则可能是 1 POST 到 /recipes 以创建返回 id 的食谱。然后 1 个或多个 POST 到 /ingredients 以创建必要的成分。然后在 /recipe//ingredients 上发布 1 个或多个帖子,以将每种成分添加到配方中。然后为作者重复。但是,如果这些请求中的任何一个失败了怎么办?我可以将其实现为对 /recipes 的 1 个 POST 请求并让它执行所有必要的插入操作吗?
【问题讨论】:
-
当然可以,但是为什么在添加作者或成分时不支持发布它们?然后,配方的 POST 将引用现有资源。
-
所以在配方表单中,用户可以创建成分然后链接它们,但是如果他们用户创建成分但随后决定不继续完成配方怎么办。然后可能会有一些永远不会被使用的成分。如果还没有现有的食谱(因此没有 recipe_id),我将如何链接这些成分?我可以创建成分,但我仍然需要等到创建配方后才能创建链接,对吧?
-
如果您通读the definition of POST,您会看到服务器将根据自己的语义处理请求,这使您基本上可以做任何您想要或需要的事情。 HTTP 规范唯一需要的是您通过
LocationHTTP 标头返回已创建资源的 URI。但是,当创建多个资源时,它会变得很有趣。当然,HTTPS 的强度不是批处理请求的处理。这里的一般经验法则是:您将如何在 Web 上实现并重复使用相同的概念 -
This 那么你可能也会感兴趣
-
我不理解您的最后一句话“您将如何在 Web 上执行此操作并重复使用相同的概念”。你能改写或详细说明吗?
标签: rest api api-design