2016-07-22 5 views
1

Ich bin sehr neu zu Ruhe-API-Konzept. Ich versuche, eine einfache Methode zu implementieren, die eine Post-Methode erhalten kann. Das Problem ist, dass die Anfrage die Methode trifft, aber die Daten nicht mit der POJO-Klasse bindet. Hier ist der my-Code.Post Anfrage nicht binden Daten mit POJO-Klasse im Frühjahr mvc Rest api.

Ich habe @RequestBody nicht verwendet, weil es mir 415 HTTP-Fehler gibt. Und das ist meine POJO-Klasse.

@Data // use lombok for getter and setter. 
public class CompileRequest { 
    private String userName; 
    private String inputFilePath; 
} 

POSTMAN view

Die userName und inputFilePath Feld null verbleibt. Ich verstehe nicht, warum die Datenbindung nicht funktioniert. Wie kann ich das beheben?

Vielen Dank.

+0

Was ist der StackTrace, den Sie erhalten, wenn Sie @RequestBody verwenden? – LynAs

+0

diese 3 Abhängigkeit hinzufügen und dann @RequestBody verwenden, um zu sehen, ob es funktioniert https://gist.github.com/sazzadislam-dsi/a90a3ea0c6d8a41e13acc2024aeb02ec – LynAs

+0

@LynAs-Abhängigkeit wurde bereits in pom hinzugefügt. Und es erzeugt keinen Stapel-Trace an meinem Ende, aber in der Antwort heißt es 'Der Server hat diese Anfrage abgelehnt, weil die Anfrage-Entität in einem Format ist, das von der angeforderten Ressource für die angeforderte Methode nicht unterstützt wird. – seal

Antwort

3

Verwenden Sie die Rückgabe wie folgt. Da u Antwort wollen ruhen es gibt Ihnen auch Option richtigen Statuscode

public ResponseEntity<?> home(@RequestBody CompileRequest compileRequest) { 

    return return ResponseEntity.ok(compileRequest); 
} 

fügen Sie den folgenden auf der CompileRequest Klasse die folgende Abhängigkeit hinzufügen, wenn Sie es bereits haben nicht

@NoArgsConstructor(access = AccessLevel.PUBLIC) 
@AllArgsConstructor(access = AccessLevel.PUBLIC) 

auch senden

 <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-core</artifactId> 
      <version>${jackson}</version> 
     </dependency> 
     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-databind</artifactId> 
      <version>${jackson}</version> 
     </dependency> 
     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-annotations</artifactId> 
      <version>${jackson}</version> 
     </dependency> 

Schließlich Daten als Json senden

{ 

    "userName" : "name", 
    "inputFilePath": "path" 

}