Ich versuche, fehlende JSON-Daten in einer POST-Anfrage zu behandeln. Mein Controller-KlassePOST REST korrigieren Fehlerstatus Fehlercode mit Spring Ausnahme
@Controller
@RequestMapping("/testMetrics")
public class TestMetricsEndPoint extends StatusEndpointHandler implements RestEndPoint<TestMetrics,String> {
@Autowired
private ObjectMapper mapper;
@Autowired
private TestMetricsService testMetricsService;
@Override
public Status get(String id) {
// TODO Auto-generated method stub
return null;
}
@Override
@RequestMapping(method = RequestMethod.POST,consumes = "application/json", produces = "application/json")
public @ResponseBody Status create(@RequestBody TestMetrics core, BindingResult bindingResult) {
try {
if(bindingResult.hasErrors()){
throw new InvalidRequestException("Add failed, Please try again ", bindingResult);
}
if((core.getGroupName()==""||core.getGroupName()==null)&&(core.getTestName()==null||core.getTestName()=="")){
throw new MissingParametersException(HttpStatus.BAD_REQUEST.value(),"Please provide all necessary parameters");
}
TestMetrics dataObject = testMetricsService.create(core);
return response(HttpStatus.CREATED.value(),dataObject);
}catch (MissingParametersException e) {
return response(HttpStatus.BAD_REQUEST.value(),e.getLocalizedMessage());
}
}
Erweiterte Klasse:
public class StatusEndpointHandler {
public Status response(Integer statusCode,Object data){
Status status = new Status();
status.setData(data);
status.setStatus(statusCode);
return status;
}
}
implementierte Schnittstelle:
public interface RestEndPoint<T extends SynRestBaseJSON, ID extends Serializable> {
Status get(ID id);
Status create(T entity, BindingResult bindingResult);}
Schauen Sie bitte auf den markierten Teil Also, als ich versuchte, das Ergebnis über POSTMAN zu testen, bekomme ich den Status als 200 OK. Ich habe keine Ahnung, dass es heiß ist, es zu lösen. Bitte hilf mir bei dieser Situation. Wie bekomme ich den richtigen Statuscode?
Sorry, mir ist nicht klar, was Sie gesagt haben. Ich habe verstanden, dass ich @ResponseEntity verwenden muss. Aber ich habe nicht verstanden, wie man es benutzt. – krish
Ich habe es fast als richtigen Weg hingestellt. Sie sollten genügend Ressourcen finden, um zu verstehen, warum und wie Sie es verwenden. Im Grunde ist es die eingebaute Klasse, die der Logik Ihres 'StatusEndpointHandler' entspricht. –