Ich habe dem RequestBody der Post -Methode einen neuen Objektparameter hinzugefügt. Unten finden Sie die Syntax der Methode bei Controller: < /p>
Code: Select all
public void registerTask(@RequestBody MyRequestDto myRequestDto)
updated MyRequestDto class:
private final String existing1;
private final String existing2;
private final NewParam myNewparam; // this is the new param that is added
< /code>
Die Initialisierung erfolgt durch Konstruktor: < /p>
public MyRequestDto(String existing1, String existing2, NewParam myNewparam){
this.existing1 = existing1;
this.existing2 = existing2;
this.myNewparam = myNewparam;
}
< /code>
Dies ist die neue Param -Klassendefinition: < /p>
public class NewParam {
private final String name;
public NewParam(String name) {
this.name = name;
}
public String getName() {
return name;
}
Das Problem ist, wenn ich die Tests über Postman sende, indem ich dieses neue Param hinzufüge, erhalte ich 400 schlechte Anforderungen. Im Folgenden finden Sie die Szenarien und das Ergebnis: < /p>
[*] Wenn der Newparam < /code> nicht zum Anforderungskörper hinzugefügt wird. Ergebnis- 201 wird zurückgegeben
[*] Wenn der NewParam hinzugefügt wird, der Wert jedoch als NULL festgelegt wird. Ergebnis-201 wird zurückgegeben.
Code: Select all
{
"existing1": "test1",
"existing2": "test2",
"myNewparam": null
}
Wenn der NewParam hinzugefügt und zu einem gewissen Wert initialisiert wird. Ergebnis- 400 schlechte Anfrage (die Anfrage kann aufgrund einer schlechten Syntax nicht erfüllt werden)
Beispiel:
{
"existing1": "test1",
"existing2": "test2",
"myNewparam": {
"name": "theme"
}
}
< /code>
< /li>
< /ol>
Hinweis: Die Integrationstests fehlschlagen ebenfalls. Während der Debugie der Integrationstests wird die Steuerung nicht zu Controller wird und nur einen Fehler als 400 schlechte Anfrage erhalten.
Ich habe dem RequestBody der Post -Methode einen neuen Objektparameter hinzugefügt. Unten finden Sie die Syntax der Methode bei Controller: < /p>
[code]public void registerTask(@RequestBody MyRequestDto myRequestDto)
updated MyRequestDto class:
private final String existing1;
private final String existing2;
private final NewParam myNewparam; // this is the new param that is added
< /code>
Die Initialisierung erfolgt durch Konstruktor: < /p>
public MyRequestDto(String existing1, String existing2, NewParam myNewparam){
this.existing1 = existing1;
this.existing2 = existing2;
this.myNewparam = myNewparam;
}
< /code>
Dies ist die neue Param -Klassendefinition: < /p>
public class NewParam {
private final String name;
public NewParam(String name) {
this.name = name;
}
public String getName() {
return name;
}
[/code]
Das Problem ist, wenn ich die Tests über Postman sende, indem ich dieses neue Param hinzufüge, erhalte ich 400 schlechte Anforderungen. Im Folgenden finden Sie die Szenarien und das Ergebnis: < /p>
[*] Wenn der Newparam < /code> nicht zum Anforderungskörper hinzugefügt wird. Ergebnis- 201 wird zurückgegeben
[*] Wenn der NewParam hinzugefügt wird, der Wert jedoch als NULL festgelegt wird. Ergebnis-201 wird zurückgegeben.[code]{
"existing1": "test1",
"existing2": "test2",
"myNewparam": null
}
[/code]
Wenn der NewParam hinzugefügt und zu einem gewissen Wert initialisiert wird. Ergebnis- 400 schlechte Anfrage (die Anfrage kann aufgrund einer schlechten Syntax nicht erfüllt werden)
Beispiel:
{
"existing1": "test1",
"existing2": "test2",
"myNewparam": {
"name": "theme"
}
}
< /code>
< /li>
< /ol>
Hinweis: Die Integrationstests fehlschlagen ebenfalls. Während der Debugie der Integrationstests wird die Steuerung nicht zu Controller wird und nur einen Fehler als 400 schlechte Anfrage erhalten.