首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RESTFull API命名标准

RESTFull API命名标准
EN

Stack Overflow用户
提问于 2017-08-29 10:33:27
回答 1查看 70关注 0票数 1

我们正在设计Rest。但是,我对端点命名约定并不感到困惑。根据我的理解,SOAP标准允许服务端点名为谓词+名词,例如

代码语言:javascript
复制
getEmployee
deleteEmployee
changeEmployeeLocation
enableDisableEmployee

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

代码语言:javascript
复制
getEmployee (SOAP) -> /employee (REST - GET HTTP Method)
deleteEmployee (SOAP) -> /employee (REST - DELETE Method)
changeEmployeeLocation (SOAP) -> ???
enableDisableEmployee (SOAP) -> ???

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-13 08:35:36

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

代码语言:javascript
复制
createEmployee (SOAP) -> POST /employees
getEmployee (SOAP) ->  GET /employees/1
deleteEmployee (SOAP) -> DELETE /employees/1

对于更新资源的单个属性,我们有两个选项:

代码语言:javascript
复制
PUT

changeEmployeeLocation (SOAP) -> PUT employees/1/location requestbody->{location:new location}
enableDisableEmployee (SOAP) -> PUT employees/1/enabled requestbody->{enabled:true}

使用特定的URL确实有效,但它是非常静态的。因此,最好使用PATCH

代码语言:javascript
复制
PATCH

changeEmployeeLocation (SOAP) -> PATCH employees/1 requestbody->{location:new location}
enableDisableEmployee (SOAP) -> PATCH employees/1 requestbody->{enabled:true}

PATCH允许您发送不完整的资源,预计该资源将与现有资源合并。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45936850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档