Spring Boot optionale mehrteilige POST-Anforderung

Habe ich einen service, wo ich möchte in der Lage sein, um Optional eine Datei hochladen (einschließlich einer Datei führen Sie eine separate Funktion) mit einer POST-Anforderung.

Eine vereinfachte version von dem, was meine ReqestMapping aussieht, ist dies:

@ApiOperation(value = "Data", nickname = "Create a new data object")
@RequestMapping(value = "/add/{user_id}", produces = "application/json", method = RequestMethod.POST)
public ResponseEntity<Data> addData(@RequestParam("note") String body,
                                            @RequestParam("location") String location,
                                            @RequestParam(value = "file", required = false) List<MultipartFile> file,
                                            @PathVariable String user_id){
    if (file != null) {
        doSomething(file);
    }
    doRegularStuff(body, location, user_id);
    return new ResponseEntity(HttpStatus.OK);
}

Wie man sehen kann, habe ich die required = false option für meine Liste von multipart-Dateien. Jedoch, wenn ich versuche zu curl den Endpunkt ohne Dateien und zwar, dass mein content Typ ist Content-Type: application/json, bekomme ich die Fehlermeldung, dass meine Anfrage nicht ein multipart-request.

Ordnung. So ich ändern, um Content-Type: multipart/form-data und ohne Dateien, bekomme ich the request was rejected because no multipart boundary was found (offensichtlich, da ich nicht über eine Datei).

Das führt mich zu der Frage wie kann ich einen optionalen multipart-parameter in meiner Quelle Endpunkte? Ich möchte vermeiden, dass zusätzliche Parameter, die auf meine Anfrage, wie "Datei Angehängt: True/False" als können, sich umständlich und unnötig, wenn der server können nur überprüfen Sie für die Existenz.

Dank!

Schreibe einen Kommentar