我们正在设计Rest。但是,我对端点命名约定并不感到困惑。根据我的理解,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) -> ???谢谢!
发布于 2018-04-13 08:35:36
在HTTP中,正如您所猜的那样,动词是通过RESTfully方法隐含的。概念上的区别在于,与SOAP不同,您不使用REST调用方法。您只修改资源。因此,您需要将SOAP方法调用(如enableDisableEmployee )分解为一个正确的资源-有效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允许您发送不完整的资源,预计该资源将与现有资源合并。
https://stackoverflow.com/questions/45936850
复制相似问题