如何根据 Spring REST 中的职责使用 GET 和 POST 方法

How to use GET and POST method according to their responsibilities in Spring REST

我想return一个在服务器端创建的对象,但该方法不需要任何请求参数或请求主体来创建对象。在这种情况下,我无法决定应该使用哪种方法。我应该使用 GET 还是 POST?

@GetMapping("/")
public ResponseEntity<InitializeResponse> getNewlyCreated() {
    X x = new X();
    x = service.initialize(x.getId());
    return ResponseEntity.ok().body(new InitializeResponse(x));
}

但这对我来说似乎不正确,因为方法 return 新创建的对象,这导致我将责任更改为 POST 但为了使它成为 POST 方法,据我所知,我需要一个请求主体或请求参数来根据它们创建对象。

我应该使用哪种方法?

您不必在 POST 请求中使用正文或请求参数。您可以同时使用两者,POST 允许使用它们,但它们不是强制性的。但是,POST 绝对是您的用例的正确选择,因为 GET 请求不应更改您正在执行的应用程序的状态(我假设您正在存储您在此方法中创建的对象,例如在数据库中的某个地方)。如果您只存储 return 该对象(例如,使用转换工具,您只需转换和 return 一些数据),那么 GET 请求类型也足够了。