spring-boot - 如何在 Spring REST 中根据各自的职责使用 GET 和 POST 方法
问题描述
我想返回一个在服务器端创建的对象,但该方法不需要任何请求参数或请求正文来创建对象。在这种情况下,我无法决定应该使用哪种方法。我应该使用 GET 还是 POST?
@GetMapping("/")
public ResponseEntity<InitializeResponse> getNewlyCreated() {
X x = new X();
x = service.initialize(x.getId());
return ResponseEntity.ok().body(new InitializeResponse(x));
}
但这对我来说似乎不对,因为方法返回新创建的对象,这导致我将责任更改为 POST 但为了使其成为 POST 方法,据我所知,我需要一个请求正文或请求参数来创建根据他们的反对。
我应该使用哪种方法?
解决方案
您不必在 POST 请求中使用正文或请求参数。您可以同时使用它们,POST 允许它们,但它们不是强制性的。但是,POST 绝对是您的用例的正确选择,因为 GET 请求不应更改您正在执行的应用程序的状态(我假设您正在存储您在此方法中创建的对象,例如在一个数据库)。如果您不存储任何内容而只是返回该对象(例如,使用转换工具,您只需转换并返回一些数据),GET 请求类型也足够了。
推荐阅读
- python - 当axis=0时,熊猫并行应用
- python - 如何将字符串与模式“Foo-Bar”匹配,其中 Bar 可以是列表的任何元素?
- java - Executor 服务在与 Completable future 一起使用时未正确关闭
- python - 如何获取子目录中所有文件的创建日期
- javascript - 将返回的承诺项分配给变量的问题
- javascript - 为什么这个 pubnub 游戏对我来说太慢了,如何解决?
- python - 如何在python中从pyqt4升级到pyqt5
- javascript - 有没有办法防止 JS 中的 Date 对象溢出天/月?
- c# - Scaffold-DbContext 失败。System.TypeLoadException:无法在 .NET Core 上加载类型“Microsoft.EntityFrameworkCore.Internal.ProductInfo”
- youtube-livestreaming-api - 找不到直播