I am trying to use Autorest and Swagger documentation created by the help of Swashbuckle.AspNetCore (3.0.0) in order to generate a REST API client.
The swagger documentation generated seems to be correct except that the operation name are not really nice.
"/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" } }
},
I saw in many articles and also on the official documentation of SwashBuckle.AspNetCore that I can use an attribute to decorate my controller method like this:
[HttpGet]
[Produces("application/json")]
[ProducesResponseType((int)HttpStatusCode.NotFound)]
[ProducesResponseType(typeof(List<AddressDto>), (int)HttpStatusCode.OK)]
[SwaggerOperation("GetAllAdresses")]
public async Task<IActionResult> GetAllAsync()
{
....
}
Unfortunately, I got an error:
SwaggerOperationAttribute could not be found
I verified the NuGet packages installed and they are:
How can I solve the problem?
I ran across this today. I needed to add the following nuget package that was just added for V3.0.0:
Swashbuckle.AspNetCore.Annotations
Breaking changes are described here
Please also note that you need to add the following to Startup.cs or your Swagger extension:
AddSwaggerGen(c => { ... c.EnableAnnotations(); })