Wie antworte ich mit einem HTTP-Statuscode in einer Spring MVC @RestController @ResponseBody-Klasse, die ein Objekt zurückgibt?
Ich versuche ein @ zu hab@RestController
was ein @ brauc@PathVariable
gibt ein bestimmtes Objekt im JSON-Format zusammen mit dem richtigen Statuscode zurück. So wie der Code ist, wird das Objekt im JSON-Format zurückgegeben, da standardmäßig Spring 4 verwendet wird, das in der Jackson-Bibliothek erstellt wurde.
Ich weiß jedoch nicht, wie ich es anstellen soll, damit der Benutzer eine Meldung erhält, in der er sagt, wir möchten eine API-Variable, dann JSON-Daten und dann einen Fehlercode (oder einen Erfolgscode, je nachdem, ob alles gut gelaufen ist). Beispielausgabe wäre:
Bitte geben Sie einen API-Wert als Parameter ein (HINWEIS: Dies kann bei Bedarf auch in JSON erfolgen).
{"id": 2, "api": "3000105000" ...} (HINWEIS: Dies ist das JSON-Antwortobjekt.)
Status Code 400 (ODER richtiger Statuscode)
Die URL mit dem Parameter sieht so aus
http://localhost:8080/gotech/api/v1/api/3000105000
Der Code, den ich bisher habe:
@RestController
@RequestMapping(value = "/api/v1")
public class ClientFetchWellDataController {
@Autowired
private OngardWellService ongardWellService;
@RequestMapping(value = "/wells/{apiValue}", method = RequestMethod.GET)
@ResponseBody
public OngardWell fetchWellData(@PathVariable String apiValue){
try{
OngardWell ongardWell = new OngardWell();
ongardWell = ongardWellService.fetchOneByApi(apiValue);
return ongardWell;
}catch(Exception ex){
String errorMessage;
errorMessage = ex + " <== error";
return null;
}
}
}