Fügen Sie eine header-parameter in Swagger-UI-Dokumentation mit Springfox
Möchte ich hinzufügen, dass ein header-Feld parameter in der automatisch generierten swagger ui Dokumentation meiner rest-Dienst. Ich benutze Frühjahr und Springfox.
public ResponseEntity<User> saveNewUser(
@ApiParam(value = "the user to create", required = true) @RequestBody User user) throws RestServiceException {
userService.save(user);
return new ResponseEntity<User>(user, HttpStatus.OK);
}
Wie Sie sehen, habe ich bereits eine Körper Typ-parameter. Ich möchte nur hinzufügen, eine header geben.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bevorzuge ich
@ApiImplicitParam
nach meinem@RequestMapping
nicht als Parameter der Funktion, denn in der Regel könnten Sie verarbeiten Ihre Header in einem filter (z.B. Authentifizierung), und Sie werden nicht benötigen, die Werte, die in dieser Methode.Neben, wenn Sie Sie brauchen in der Methode Swagger auto bietet das Feld für eine
@HeaderParam
Dieser Stil auch die Lesbarkeit Verbessert und die Flexibilität, wenn einige Anrufe müssen Kopf-und andere nicht.
Beispiel
Wenn alle oder die meisten für Ihre Endgeräte brauchen, header, ich werde eher eine Konfiguration als gesehen hier
Wenn Sie erklären müssen, mehrere header params, müssen Sie die @ApiImplicitParams Anmerkung:
Habe ich nur noch
@RequestHeader(value="myHeader") String headerStr
:(
import org.springframework.web.bind.annotation.RequestHeader;
)Können Sie auch fügen Sie eine Globale Kopfzeile auf jeder service in Ihrer Dokumentation mit der Lösung hier beschrieben : Frühling + Springfox + Header-Parameter
Wenn du mehr header-Parameter, dann wird jeder API haben, dass viele @RequestHeader
Um dies zu vermeiden und Ihrem API-sieht einfach aus, die Sie verwenden können HeaderInterceptor zu erfassen, die header-Informationen.
Ihre API aussieht, wie die unten mit einer @RequestAttribute("headerName")
Ihre Swagger sollte dennoch beschreibt alle Header der API können Sie Parameter hinzufügen, in Fors Laufzettel, SwaggerConfig
Bitte beachten Sie ignoredParameterTypes, haben wir bereits erwähnt, zu ignorieren HeaderVo, weil die innerhalb der Anwendung. Arroganz hat nicht verlangen, um zu zeigen, dass