@PostMapping: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(→REST) |
||
(8 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
* [[Spring MVC Concepts#.40PostMapping|Spring MVC Concepts]] | * [[Spring MVC Concepts#.40PostMapping|Spring MVC Concepts]] | ||
* [[Spring_REST_Concepts#Create_a_Resource|Spring REST Concepts]] | |||
=Overview= | =Overview= | ||
Line 18: | Line 19: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=HTTP POST Semantics for REST Applications= | =REST= | ||
<syntaxhighlight lang='java'> | |||
@RestController | |||
@RequestMapping(path = "/a", produces = "application/json") | |||
public class AController { | |||
@PostMapping(consumes = "application/json") | |||
@ResponseStatus(HttpStatus.CREATED) | |||
public A post(@RequestBody A a) { | |||
content.put(a.getId(), a); | |||
return a; | |||
} | |||
} | |||
</syntaxhighlight> | |||
For possible problems related to [[@RequestBody]] and deserialization from JSON, see: {{Internal|Spring_REST_Concepts#Request_Body_and_Jackson_Deserialization|Request Body and Jackson Deserialization}} | |||
==HTTP POST Semantics for REST Applications== | |||
{{Internal|REST_and_Hypermedia#POST|HTTP POST Semantics for REST Applications}} | {{Internal|REST_and_Hypermedia#POST|HTTP POST Semantics for REST Applications}} | ||
==Data Members== | |||
===consume=== | |||
Specifies what kind of content type(s) the handler is capable of handling. |
Latest revision as of 15:58, 27 March 2019
Internal
Overview
Designates a controller handler method to handle POST requests. The annotation may also contain a sub-path relative to the class-level base path, usually configured with @RequestMapping.
The content of the posted HTML form is presented to the method as a domain model data object: when the form is submitted, the fields in the form are bound to properties of the domain model object instance. In the example below, the form is used to build a taco composition:
@PostMapping
public String processFormContent(Taco taco) {
// ...
return "redirect:/orders/current";
}
REST
@RestController
@RequestMapping(path = "/a", produces = "application/json")
public class AController {
@PostMapping(consumes = "application/json")
@ResponseStatus(HttpStatus.CREATED)
public A post(@RequestBody A a) {
content.put(a.getId(), a);
return a;
}
}
For possible problems related to @RequestBody and deserialization from JSON, see:
HTTP POST Semantics for REST Applications
Data Members
consume
Specifies what kind of content type(s) the handler is capable of handling.