Java 参数作为POST方法上的请求参数

Java 参数作为POST方法上的请求参数,java,rest,spring-boot,post,Java,Rest,Spring Boot,Post,这个问题是关于最佳实践,而不是关于问题 我正在编写一个springbootrest服务,它将执行更新,这意味着基本上我正在执行POST操作。输入参数类似于userId,name,emailAddress,phoneNo 所以我的问题是,我能做如下的事情吗。只需使用POST告诉您这是更新uri,但将所有参数作为请求参数传递,而不是requestBody @PostMapping(value="/my-url ) public ResponseEntity<?> myMethod

这个问题是关于最佳实践,而不是关于问题

我正在编写一个
springboot
rest服务,它将执行更新,这意味着基本上我正在执行
POST
操作。输入参数类似于
userId
name
emailAddress
phoneNo

所以我的问题是,我能做如下的事情吗。只需使用
POST
告诉您这是更新
uri
,但将所有参数作为请求参数传递,而不是
requestBody

@PostMapping(value="/my-url )
    public ResponseEntity<?> myMethod(
          @RequestParam(value = "userId")  String userId,
          @RequestParam(value = "name")  String name,
          @RequestParam(value = "emailAddress")  String emailAddress,
          @RequestParam(value = "phoneNo")  String phoneNo){
@PostMapping(value=“/myurl)
公众反应方法(
@RequestParam(value=“userId”)字符串userId,
@RequestParam(value=“name”)字符串名称,
@RequestParam(value=“emailAddress”)字符串emailAddress,
@RequestParam(value=“phoneNo”)字符串phoneNo){
我知道这是可行的,但是,这可以接受吗?如果可以,如果我们以requestparam的形式传递参数,那么使用请求类型作为
POST
的目的是什么。

非常感谢专家的意见。

是的。谈到最佳实践,我认为最好的方法是创建一个模型,它将是一个
@RequestBody
参数表,然后在
url
中传递一些参数。此外,创建一个模型可以保证一组固定的可能参数,而且不需要关心不再是强制性的了。
顺便说一句,更新操作的最佳实践是一个
PUT
,而不是
POST
请求

是的,你可以这样做。你不需要传递很多参数,你可以创建一个xml或json格式的请求体来增加可见性。将requestparam与
POST
一起使用不是基本错误吗?技术上你可以这样做,但是在post请求的情况下,它总是用作请求主体。可能是重复的而不是重复的。我询问的是最佳实践,这个问题不同。感谢
PUT
post
的澄清。所以你说不要这样做,但最好不要这样做。那么,如果我们e将所有内容作为requestparam传递?抱歉,没有完全理解您的问题(无论如何。在评论中回答你自己的问题:是的,使用
POST
进行更新是完全错误的-有国际协议。说到参数传递……没有人禁止你做你想做的事,但这取决于应用程序的要求。哪里能保证下周不会出现更新更多应用程序的要求复杂的模型?在这种情况下,最好的方法是为可伸缩性打下基础。你说的是使用requestbody,但不是说不要使用requestparam。我说的对吗?是的。通常你应该将负责“寻址”的参数分开“的请求和将要更新的参数。假设您需要更新一本书的发布日期和ISBN,那么将要更新的参数是“ISBN”和“publish_date”,您应该将它们添加到输入模型中,更新的键是该书的id。这样您就可以使smth像这样:
@PutMapping(value=“api/book/{bookId}”公共响应属性myMethod(@RequestBody UpdateBookModel,@PathVariable(“bookId”)Long bookId{…}
附加说明:您可以使用
PUT
PATCH
进行更新操作,但
PATCH
通常用于对部分资源进行更改。