So geben Sie den Standardmedienstyp für Endpunkte in einem Spring Boot -Dienst anJava

Java-Forum
Anonymous
 So geben Sie den Standardmedienstyp für Endpunkte in einem Spring Boot -Dienst an

Post by Anonymous »

Ich baue einen Spring -Boot -Service mit mehreren Endpunkten. Mein Dienst muss sowohl JSON als auch XML -ausgabe unterstützen. Die meisten Endpunkte sind nur JSON und einige werden nur XML sein. Ich kann den Inhaltstyp angeben, den ein bestimmter Endpunkt akzeptiert oder mit Annotation @RequestMapping zurückgibt. Zum Beispiel: < /p>

Code: Select all

@RequestMapping(method = RequestMethod.POST,
consumes = {MediaType.APPLICATION_XML_VALUE},
produces = {MediaType.APPLICATION_XML_VALUE})
< /code>

Da die meisten Endpunkte meiner Anwendung nur JSON < /code> sind, wollte ich vermeiden, < /p>

schreiben zu müssenconsumes = {MediaType.APPLICATION_JSON_VALUE},
produces = {MediaType.APPLICATION_JSON_VALUE}
< /code>

In allen. Gibt es eine Möglichkeit, eine mit @RequestMapping 
kommentierte Methode zu erstellen. Immer wenn ich etwas anderes als die Standardeinstellung brauche, kann ich es angeben. Ich denke, dass ich es durch Inhaltsverhandlungen mit einer benutzerdefinierten ContentNegotiationStrategy tun kann, aber ich würde diesen Code benötigen, um die Annotationen des Handlers für diese Anforderung zu lesen (die spezifische Methode mit @RequestMapping ) und der Code wird nur einen native Webrequest . Dies?

Code: Select all

@Configuration
@EnableWebMvc
class ContentNegotiationConfiguration extends WebMvcConfigurerAdapter {
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.favorParameter(false)
.favorPathExtension(true)
.ignoreAcceptHeader(true)
.ignoreUnknownPathExtensions(false)
.useJaf(false)
.defaultContentType(MediaType.APPLICATION_JSON);
}
}
< /code>

und Endpunkt mit < /p>

@RequestMapping(method = RequestMethod.GET)
< /code>

Rufe dann den Endpunkt < /p>

aufGET https://localhost:8080/endpoint.xml
Gibt XML Ausgabe und http 200 anstelle von http 406 .

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post