spring啥时候使用不同的请求方法

Posted

技术标签:

【中文标题】spring啥时候使用不同的请求方法【英文标题】:When to use different request methods in springspring什么时候使用不同的请求方法 【发布时间】:2022-01-01 04:23:39 【问题描述】:

我的任务是创建一个简单的 REST API,其中提供了一个 double,另一个是根据一些规则从它派生的。

在创建控制器的时候,我做了两种解析基础双精度的方法。

@GetMapping("calculate/income:.+")
public ResponseEntity<?> calculateEAT(@PathVariable double income)
  return ResponseEntity.ok(TaxDAO.addResult(income));

@PostMapping("calculate/income:.+")
public ResponseEntity<?> calculateEAT(@PathVariable double income)
  return ResponseEntity.ok(TaxDAO.addResult(income));

唯一的区别是使用的映射类型。我注意到的唯一区别是我可以使用 GET 映射在浏览器地址栏中输入收入——而且它有效。使用 post mapping,我只能使用 Postman 获得结果。

我假设可以使用 GET 映射来编写整个控制器。不过,我真的不觉得这是一个好习惯。在控制器中使用请求方法有什么规则吗?

【问题讨论】:

当你只提供一些信息时你应该使用GET,但是当你创建一些东西时你应该使用POST。 作为@asnerdyasSteveWozniak 所说的扩展,Wikipedia 上有一篇关于 REST 的短文可能对您有所帮助en.wikipedia.org/wiki/Representational_state_transfer 【参考方案1】:

GET 和 POST 请求是不同的 HTTP 方法。当您在浏览器地址栏中键入内容时,浏览器会发出 GET 请求,这就是为什么您只能在 Postman 中使其工作(您可以在其中选择要使用的 HTTP 方法)。

当您想从 REST API 检索某些内容时,您应该使用 GET。当您想向 REST API 提交内容时,您应该使用 POST,通常是创建资源或触发某种流程。您可以在以下在线资源中阅读有关每种 HTTP 方法的更多信息:

https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods https://www.restapitutorial.com/lessons/httpmethods.html

【讨论】:

以上是关于spring啥时候使用不同的请求方法的主要内容,如果未能解决你的问题,请参考以下文章

serverlet中啥时候调用doget和dopost方法

spring boot 中实现兼容不同的请求类型的方法。

Spring Aspect 获取请求参数

打开网站时出现400是啥意思?有高手没,解释一下。跪求答案

HTTP请求中同步与异步有啥不同

Spring Boot如何让某个Controller支持跨源请求,以及如何让Controller类某个成员方法支持跨源请求