Verwenden von Spring Boot (3.5.0) mit Springdoc (2.8.9) habe ich bei einem @restController etwas Unerwartetes bei der Angabe von Erzeugnissen erzeugt. /> unterstützt sowohl auf Typ -Ebene als auch auf Methodenebene! Wenn in beiden Ebenen angegeben wird, erzeugt die Methodenebene die Bedingung über die Bedingung der Typtyppegel.
Code: Select all
@RestController
@RequestMapping(produces = MediaType.APPLICATION_JSON_VALUE)
public class MediaTypeDemoController {
@GetMapping("/json")
public ResponseEntity getJsonResponse() {
Map response = Map.of("message", "This is JSON");
return ResponseEntity.ok(response);
}
@GetMapping(value = "/xml", produces = MediaType.APPLICATION_XML_VALUE)
public ResponseEntity getXmlResponse() {
String xml = "This is XML";
return ResponseEntity.ok(xml);
}
}
Die für GET/XML generierte OpenAPI -Spezifikation enthält sowohl Anwendung/JSON als auch application/xml als mögliche Antwortmedienstypen. Ich habe erwartet, dass es nur die Anwendung/XML auflistet, da es auf Methodenebene explizit deklariert wird.>