web-dev-qa-db-ja.com

Swashbuckle.AspNetCore SwaggerOperation属性が見つかりません

REST APIクライアントを生成するために、Swashbuckle.AspNetCore(3.0.0)の助けによって作成されたAutorestおよびSwaggerドキュメントを使用しようとしています。

生成されたSwaggerのドキュメントは、操作名が本当に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" } }
      },

多くの記事とSwashBuckle.AspNetCoreの公式ドキュメントで、属性を使用してコントローラーメソッドを次のように装飾できることを確認しました。

 [HttpGet]
 [Produces("application/json")]
 [ProducesResponseType((int)HttpStatusCode.NotFound)]
 [ProducesResponseType(typeof(List<AddressDto>), (int)HttpStatusCode.OK)]
 [SwaggerOperation("GetAllAdresses")]
 public async Task<IActionResult> GetAllAsync()
 {
   ....
 }

残念ながら、エラーが発生しました:SwaggerOperationAttributeが見つかりませんでした!

インストールされているnugetパッケージを確認しました。

  • SwashBuckle.AspNetCore.Swagger(3.0.0)
  • SwashBuckle.AspNetCore.SwaggerGen(3.0.0)
  • SwashBuckle.AspNetCore.SwaggerUI(3.0.0)

誰かが私を助けることができますか?お願いします

19

今日これに遭遇しました。 V3.0.0に追加されたばかりの次のnugetパッケージを追加する必要がありました。

Swashbuckle.AspNetCore.Annotations

重大な変更が説明されています ここ

また、Startup.csまたはSwagger拡張に以下を追加する必要があることにも注意してください。

AddSwaggerGen(c => { ... c.EnableAnnotations(); })
13
ScottG

もう1つのオプションは、NameフィルターのHttpGetプロパティを次のように設定することです。

[HttpGet(Name = "GetAllAdresses")]
[Produces("application/json")]
[ProducesResponseType((int)HttpStatusCode.NotFound)]
[ProducesResponseType(typeof(List<AddressDto>), (int)HttpStatusCode.OK)]
[SwaggerOperation("GetAllAdresses")]
public async Task<IActionResult> GetAllAsync()
{
   ....
}
0
CoOl