Aller au contenu principal

🔌 Support des annotations Swagger Core v3

Annotations et champs supportĂ©s​

Les annotations et champs actuellement pris en charge sont :

AnnotationFieldTypeDescription
OperationoperationIdStringIdentifiant unique de l'opération
summaryStringCourt résumé de l'opération
descriptionStringDescription détaillée de l'opération
parametersParameter[]Liste des paramĂštres
responsesApiResponse[]Liste des réponses possibles
ApiResponseresponseCodeStringCode http de la réponse
descriptionStringDescription de la réponse
contentContent[]Définition du contenu de la réponse
ContentschemaSchemaSchema du contenu
SchemaimplementationClass<?>Classe implémentant le shéma
descriptionStringDescription du schema
exampleStringValeur d'exemple
ParametersvalueParameter[]Liste des paramĂštres
ParameternameStringNom du paramĂštre
inParameterInLocalisation du paramĂštre (query, path, header, etc.)
descriptionStringDescription du paramĂštre
requiredbooleanIndique si ce paramĂštre est requis
schemaSchemaSchéma du paramÚtre
exampleStringValeur d'exemple
SecuritySchemenameStringNom du schéma de sécurité
typeSecuritySchemeTypeType du schéma de sécurité (http, apiKey, oauth2, openIdConnect)
descriptionStringDescription du schéma
inSecuritySchemeInLocalisation de la clé API (query, header, cookie)
schemeStringSchéma d'authentification HTTP (ex: bearer, basic)
bearerFormatStringIndication sur le format des tokens bearer
openIdConnectUrlStringURL OpenId Connect pour découvrir la configuration OAuth2
SecurityRequirementnameStringNom de l'exigence de sécurité
scopesString[]Liste des scopes requis pour l'exigence de sécurité

Exemples​

@Operation(summary = "Swagger summary",
operationId = "my-operation-id",
responses = {
@ApiResponse(description = "This is a successful operation"),
@ApiResponse(responseCode = "404", description = "Not Found", content = @Content(schema = @Schema(implementation = ErrorEntity.class))),
@ApiResponse(responseCode = "500", description = "Internal server error", content = @Content(schema = @Schema(implementation = ErrorEntity.class)))
})
@GetMapping("/some-api")
public ResponseEntity<String> myFunction() {
return ResponseEntity.ok("returnValue");
}

@SecurityScheme(name = "bearerAuth", type = SecuritySchemeType.HTTP, bearerFormat = "JWT", scheme = "bearer")
@SecurityRequirement(name = "bearerAuth")
@RestController
@RequestMapping("/api/v1/recipes")
public class SecurityAnnotationResource {

@GetMapping
public String getRecipes() {
return "Recipes";
}

@SecurityRequirement(name = "basicAuth")
@GetMapping("/basic")
public String getRecipesBasicAuth() {
return "Recipes";
}
}
info

L'annotation @SecurityScheme peut Ă©galement ĂȘtre placĂ©e sur des classes de configuration standalone (comme @Configuration de Spring ou des classes de configuration de sĂ©curitĂ© personnalisĂ©es), mĂȘme si elles ne contiennent aucun point de terminaison REST. Le plugin va scanner le classpath et les rĂ©cupĂ©rer automatiquement !


public class ErrorDto {

@Schema(description = "Timestamp of the error", example = "2023-10-01T12:00:00")
private LocalDateTime timestamp;
@Schema(description = "Session ID associated with the error", example = "session-12345")
private String sessionId;
}