标签:webservice-client amazon-web-services rest web-services java
我有一个宁静的Web服务,我正在为其编写新的方法调用.新方法调用的目的是将一个人的状态撤销为“否”.
我必须在请求中发送的是一个Person_Id,其状态需要更改为“ NO”.
我应该使用PUT还是POST执行此操作?
如果使用put,是否可以仅将person_id作为路径参数发送,而不使用任何xml.
(例如:http:// serverName / PersonServices / Person / 123456),并且在服务层中,我有这样的代码.
@PUT
@Path("/Person/{person_Id}")
@Consumes("application/xml")
@Produces("application/xml")
public JAXBElement<GetUsageTokenType> updateLicenseStatus(
@PathParam("person_Id") final Long personId) {
//code to change the status
}
或者我应该使用POST来执行此操作…
我是说对了,如果我使用POST,我需要发送xml格式吗?
解决方法:
如果您查看Which HTTP methods match up to which CRUD methods?,则会显示映射
Create = PUT with a new URI
POST to a base URI returning a newly created URI
Read = GET
Update = PUT with an existing URI
Delete = DELETE
如果您阅读了每个动词的定义HTTP RFC,就会明白为什么…
回应:
can I just send the person_id as a path parameter and not use any xml
at all
那么理想情况下,您的网址
http://serverName/PersonServices/Person/123456
应该是
http://serverName/PersonServices/RevokePerson/123456
如果您不想传递任何XML / JSON / etc,但是对于人类可读的URL是否是RESTful服务的功能,则这将有助于维护性llloooonnnggg-running argument
正如评论中提到的那样,RESTful API应该专注于内容而不是操作.参见:例如Why does including an action verb in the URI in a REST implementation violate the protocol?.
因此,您需要将一个人传递给URL,然后根据HTTP动词执行相关的CRUD操作.如果您只想传递一个ID,那么您将不得不猜测将PUT放入ID时需要进行的更新……除非您知道永远不会进行任何其他更新.
标签:webservice-client,amazon-web-services,rest,web-services,java 来源: https://codeday.me/bug/20191127/2075132.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。