如何取消REST api请求?

Ani*_*hav 5 java rest

我使用基于REST API的系统,其中有一些请求需要很长时间才能完成.我想给用户一个取消请求的选项.

Eri*_*ein 5

一、支持

POST /requests
Run Code Online (Sandbox Code Playgroud)

这将返回对请求状态的引用

{
    "id": 1234,
    "self"": "/requests/1234"
    "status": "Running"
}
Run Code Online (Sandbox Code Playgroud)

然后添加支持

PUT /requests/1234
{
    "status": "Canceled:"
}
Run Code Online (Sandbox Code Playgroud)

这将让客户取消尚未完成的请求。如果请求是创建某种其他类型的资源,则代替POST /requests, do POST /myResource,但仍返回状态对象,并在响应中返回指向 /requests 的指针。

然后客户端可以轮询/requests以查看请求何时完成。