RESTFull API命名标准

RESTFull API命名标准,rest,Rest,我们正在设计RESTAPI。但我对端点命名约定有点困惑。根据我的理解,例如,SOAP标准允许服务端点名称为动词+名词 getEmployee deleteEmployee changeEmployeeLocation enableDisableEmployee 但在REST中,我们通常通过主实体和HTTP方法控制名称。这对凝乳手术很好。我不确定像changeEmployeeLocation这样的端点将如何根据REST命名标准命名 getEmployee (SOAP) -> /employ

我们正在设计RESTAPI。但我对端点命名约定有点困惑。根据我的理解,例如,SOAP标准允许服务端点名称为动词+名词

getEmployee
deleteEmployee
changeEmployeeLocation
enableDisableEmployee
但在REST中,我们通常通过主实体和HTTP方法控制名称。这对凝乳手术很好。我不确定像changeEmployeeLocation这样的端点将如何根据REST命名标准命名

getEmployee (SOAP) -> /employee (REST - GET HTTP Method)
deleteEmployee (SOAP) -> /employee (REST - DELETE Method)
changeEmployeeLocation (SOAP) -> ???
enableDisableEmployee (SOAP) -> ???

谢谢大家!

在RESTfully API中,正如您猜对的那样,动词是通过HTTP方法隐含的。概念上的区别在于,与SOAP不同,您不使用REST调用方法。您只能修改资源。因此,您需要将诸如
enableDisableEmployee
之类的SOAP方法调用分解为正确的资源有效URL

createEmployee (SOAP) -> POST /employees
getEmployee (SOAP) ->  GET /employees/1
deleteEmployee (SOAP) -> DELETE /employees/1
对于更新资源的单个属性,我们有两个选项:

PUT

changeEmployeeLocation (SOAP) -> PUT employees/1/location requestbody->{location:new location}
enableDisableEmployee (SOAP) -> PUT employees/1/enabled requestbody->{enabled:true}
使用特定的URL确实有效,但它是非常静态的。因此,最好使用
PATCH

PATCH

changeEmployeeLocation (SOAP) -> PATCH employees/1 requestbody->{location:new location}
enableDisableEmployee (SOAP) -> PATCH employees/1 requestbody->{enabled:true}
PATCH
允许您发送一个不完整的资源,该资源将与现有资源合并