J'essaie d'utiliser la documentation Autorest et Swagger créée avec l'aide de Swashbuckle.AspNetCore (3.0.0) afin de générer un client API REST.
La documentation swagger générée semble être correcte sauf que le nom de l'opération n'est pas vraiment gentil.
"/api/Addresses/{id}": {
"get": {
"tags": [ "Address" ],
"operationId": "ApiAddressesByIdGet",
"consumes": [],
"produces": [],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"type": "string",
"format": "uuid"
}
],
"responses": { "200": { "description": "Success" } }
},
J'ai vu dans de nombreux articles et également dans la documentation officielle de SwashBuckle.AspNetCore que je peux utiliser un attribut pour décorer ma méthode de contrôleur comme ceci:
[HttpGet]
[Produces("application/json")]
[ProducesResponseType((int)HttpStatusCode.NotFound)]
[ProducesResponseType(typeof(List<AddressDto>), (int)HttpStatusCode.OK)]
[SwaggerOperation("GetAllAdresses")]
public async Task<IActionResult> GetAllAsync()
{
....
}
Malheureusement, j'ai eu une erreur: SwaggerOperationAttribute est introuvable!
J'ai vérifié les paquets de nuget installés et ils sont:
Quelqu'un pourrait m'aider? S'il vous plaît
J'ai couru à travers cela aujourd'hui. J'avais besoin d'ajouter le paquet de pépites suivant qui vient d'être ajouté pour la V3.0.0:
Swashbuckle.AspNetCore.Annotations
Les changements radicaux sont décrits ici
Notez également que vous devez ajouter les éléments suivants à Startup.cs ou à votre extension Swagger:
AddSwaggerGen(c => { ... c.EnableAnnotations(); })
Une autre option consiste à définir la propriété Name
pour votre filtre HttpGet
comme suit:
[HttpGet(Name = "GetAllAdresses")]
[Produces("application/json")]
[ProducesResponseType((int)HttpStatusCode.NotFound)]
[ProducesResponseType(typeof(List<AddressDto>), (int)HttpStatusCode.OK)]
[SwaggerOperation("GetAllAdresses")]
public async Task<IActionResult> GetAllAsync()
{
....
}