@PostMapping

From NovaOrdis Knowledge Base
Revision as of 15:58, 27 March 2019 by Ovidiu (talk | contribs) (→‎REST)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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:

Request Body and Jackson Deserialization

HTTP POST Semantics for REST Applications

HTTP POST Semantics for REST Applications

Data Members

consume

Specifies what kind of content type(s) the handler is capable of handling.