gpt4 book ai didi

design-patterns - 纯粹用于“action”调用的最干净的RESTful设计?

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

我将脚趾放在RESTful水域中,而我却找不到如何真正处理RESTful服务上面向“操作”的调用的“令人满意”的解决方案?我的看法可以分为两部分。

1)事务性调用:我了解拥有一个ActionTransactor的想法,即您也可以通过发布获取资源,更新参数,然后使用PUT进行提交(如在各处以及Orilly RESTful Web服务书中所述)。但是,我的想法是永远保持状态始终存在的URL。如果说实话,我们真的不需要永远保持事务,那么可以杀死资源URI吗? URI是否需要遍历,或者它们可以是过期的URI

2)非事务调用:这些调用可能是执行跨越多个资源的某些工作流的调用,但此后却没有资源。一个示例可能是重新生成一些计算出的ans缓存值,例如大型agreget或re-为博客编入索引或类似的“纯”操作。

无论如何,我对社区对此的想法感到好奇...到目前为止,我已经读到Overloading Post是处理第2部分的最干净的方法。但是,同样有很多人反对这种方法。而且(对我而言)它不是自我记录的,尽管这是RESTful API的主要设计目标之一。

最佳答案

1)。使URI永远保持状态:考虑任何网站。它有一些页面。有些被删除,当我们尝试访问它们时会得到404。考虑其中有客户的数据库。我们的RESTful访问器具有诸如http://myserver/customer/12345之类的URI-如果客户已被删除,则我们可以返回404。在我看来,这是很合理的。 URI是短暂的,因为它们在语法上可能是有效的,但是如果资源现在过时,则系统具有明确定义的行为。我认为,对 Restful 服务进行错误处理是一个重要的考虑因素。我讨论这个here

2)。似乎不太适合REST模型的操作:我不确定PUT还是POST是最合适的方法。资源就是做某事的要求的想法怎么样?这样我们就可以将

http://myserver/request/cacheupdate

这可以返回包含唯一ID的请求有效负载(就像创建客户可以返回包含系统生成的ID的客户信息一样)。然后,可以使用唯一ID使用请求资源来确定请求是否已完成。
http://myserver/request/12345

这使我们能够跟踪长时间运行的请求的状态。

关于design-patterns - 纯粹用于“action”调用的最干净的RESTful设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2382363/

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