gpt4 book ai didi

RESTful : When is it OK to POST without creating a resource on server?

转载 作者:行者123 更新时间:2023-12-04 03:51:56 25 4
gpt4 key购买 nike

根据REST原则,我了解到服务器的所有POST都应被用来创建资源。修改服务器上的内容。如果要获取信息,请使用GET。

但是,在需要发送大量信息以获得资源的情况下呢?

例如,复杂的搜索参数对于URL而言可能太长。或者,假设您想发送要搜索的图像,例如OCR或类似的图像比较。

在这些情况下,似乎有必要将数据POST到服务器,但结果不会是更改,而只是信息。发布图像,接收服务器上存在的相似图像的列表。

我不想构建违反这些原则的REST API,除非它们实际上不是违反原则。

编辑

到目前为止,似乎所有答案都是正确的(!):Sergio和Kay在需要时对“弯曲规则”的实际值是正确的。但是uriDium有一个好处:

图像上载实际上是会导致服务器发生更改:存在一个新文件,尽管是临时文件。对于复杂的搜索,可以认为与“文档”相同。

我想我们可以考虑“临时”更改的概念,即“临时POST”,其中服务器已更改并产生了新的临时资源。在那种情况下,出于RESTful的考虑,也许这可能是以下行为:

  • 客户端:发布临时资源
  • 服务器:使用临时资源URI和TTL header (?)进行响应。用资源URI以外的其他内容进行响应很不轻松-是吗?
  • 客户端:在TTL时间之内获取临时资源
  • 服务器在TTL
  • 之后删除资源

    我会考虑在步骤2中使用完整的临时资源进行响应,并在其中完成交互,仅出于叛逆:-)

    最佳答案

    技术限制(例如,使用HTTP get和以base64编码的最大限制为2048的最大大小查询字符串)时,会阻止您添加业务值(value)(需要能够比较或搜索服务中的图像)由于采用了(RESTful Web服务)的架构方法,我想说您可以打破一些您要坚持的规则或原则。

    最重要的是,您的客户可以合理地猜测您的API的行为。可以使用明确记录来记录异常,例如使用POST使用POST搜索图像而不创建资源的异常。

    关于RESTful : When is it OK to POST without creating a resource on server?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21473437/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com