当前位置:  开发笔记 > 前端 > 正文

RESTful方式发送命令

如何解决《RESTful方式发送命令》经验,为你挑选了3个好方法。

如何将"命令"发送到RESTful服务器?

使用案例:我的服务器缓存某些信息,以便每次请求信息时都不必读取数据库.我需要一种方法从我的客户端应用程序发送命令,告诉服务器刷新缓存.你会在像".../flush_cache"这样的URL上使用POST或PUT吗?

"命令"实际上不是需要"Representational State Transfer"的数据,除非被传输的状态是命令的结果 - "开关关闭","缓存被刷新"等.作为一般规则,如何做REST将命令发送到服务器?



1> redben..:

我在过去的项目中遇到过很多这样的情况.由于REST很好......关于资源,因此并不总是清楚如何处理真正具有RPC的东西.

解决这个问题的一个简单方法是将其视为休息官僚部分,请求可以是资源本身:

1."你想在我的服务器上触发命令?首先填写此表格I90292并发送给我们":

POST /bureaucracy/command-request 
Content-Type: application/x-www-form-urlencoded
Content-Length: ...

    "好的,我们会看到我们能做什么.你的案件编号是999"

    201创建(或根据Kugel的评论接受202)位置/官僚/命令请求/ 999

    然后客户定期检查

    GET /官僚机构/命令请求/ 999

希望他得到如下的回应

200 OK

  999
  ...
  Success

当然,如果官僚服务有很好的客户关怀,它会让客户在完成后给他打电话,如果他想要:
"你想在我们的服务器上触发一个命令?请填写此表并发送给我们.请注意你可以加入您的联系信息,以便我们可以在完成后给您打电话"

POST /bureaucracy/command-request?callback=client.com/bureaucracy/inbox 

或者作为自定义http标头 X-Callback: http://client.com/bureaucracy/inbox


我过去使用过这种方法,它对我有好处.除了我返回202 Accepted,这是为了异步请求.

2> Bruno..:

我建议这个:

创建一个可以GET的资源,如果对此命令有副作用,它将告诉客户端如何发送命令,类似于HTML表单,使用POST.

POST到资源以触发命令并将URI返回到您在执行此POST请求期间创建的新资源(例如http://server.example/results/00001),可能具有204(无内容)状态和Location头或重定向(取决于哪个客户端可以了解).

让客户端使用GET检查此资源上的结果.您也可以返回此资源的表示(或类似的东西),就像之前POST返回的实体一样.

由您决定结果资源的生命周期.如果您不需要长时间存储结果,它可能是短暂的.例如,URI可以从UUID构造.



3> Martin Konec..:

在你的情况下,为什么不制作cache资源?

DELETE /cache

当你想要冲洗它.

POST /cache

当你想要创建一个新的.

或者将前两个组合成以下内容:

DELETE /cache?autorecreate=true

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有