Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
资源有多个状态时如何设计RESTAPI_Rest_Http - Fatal编程技术网

资源有多个状态时如何设计RESTAPI

资源有多个状态时如何设计RESTAPI,rest,http,Rest,Http,我将为我的web应用程序中的事件报告设计RESTAPI。事件有三种状态。i、 e.事件调查、解决和尸检。我为每个状态使用三个数据库表。我想设计RESTAPI来创建数据库的新事件。这里的新事件是指处于调查状态的事件 我尝试了两种设计RESTAPI的方法。在第一种方法中,我把三个状态看作子资源。 POST - /incident/investigation POST - /incident/resolved POST - /incident/postmortem 在第二种方法中,我认为应该在POS

我将为我的web应用程序中的事件报告设计RESTAPI。事件有三种状态。i、 e.事件调查、解决和尸检。我为每个状态使用三个数据库表。我想设计RESTAPI来创建数据库的新事件。这里的新事件是指处于调查状态的事件

我尝试了两种设计RESTAPI的方法。在第一种方法中,我把三个状态看作子资源。
POST - /incident/investigation
POST - /incident/resolved
POST - /incident/postmortem
在第二种方法中,我认为应该在POST方法的http响应中传递事件状态

POST-/incident

设计REST API的最佳方法是什么?

REST API应该标识资源,因此您可以使用类似于
/incident/123
的内容来表示事件编号123。而
/incident/123/status
将是该特定事件的当前状态


由于每个事件仅处于一种状态,因此不存在“多个状态”问题。

REST API应该识别资源,因此您可以使用类似于
/incident/123
的内容来表示事件编号123。而
/incident/123/status
将是该特定事件的当前状态


由于每个事件仅处于一种状态,因此不存在“多个状态”问题。

状态是路径参数吗?(我想在三种状态下发布不同类型的json。)是的。我将“事件”视为结构化数据,其中指向整体的路径是指向部分数据路径的前缀。如果使用/incident/123/{status},则必须使用具有不同应用程序/json.True的多个post请求。这正是我实现它的方式
/foo
表示整个JSON对象,而
/foo/bar
仅表示
bar
子对象。我没有在
{status}
中获得
{}
,我的字面意思是
/incident/{incidentnumber}/status
。这将是整个
/incident/{incidentnumber}
状态
子键/foo表示整个JSON对象,而
/foo/bar
仅表示
bar
子对象。我没有在
{status}
中获得
{}
,我的字面意思是
/incident/{incidentnumber}/status
。这将是整个
/incident/{incidentnumber}