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;
        }
    }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage