Swashbuckle - 生成多个 operationId 的相同端点

时间:2021-05-18 13:14:26

标签: c# .net swashbuckle webapi

在 .NET 4.8 WebApi 应用程序中,我有一个简单的控制器,如

[Authorize]
public class AccountController : WebApiBaseController
{
    [AllowAnonymous]
    [HttpPost]
    public async Task<IHttpActionResult> RequestPasswordReset([FromUri]string email)
    {
        await RequestPasswordReset(email);
        return Ok();
    }
}

当我使用 swashbuckle 生成 api 规范时,它为此创建了多个操作。

 "/api/Account/RequestPasswordReset": {
  "post": {
    "tags": [ "Account" ],
    "operationId": "Account_RequestPasswordReset",
    "consumes": [],
    "produces": [ "application/json", "text/json", "application/xml", "text/xml" ],
    "parameters": [
      {
        "name": "email",
        "in": "query",
        "required": true,
        "type": "string"
      }
    ],
    "responses": {
      "200": {
        "description": "OK",
        "schema": { "type": "object" }
      }
    }
  }
},

然后降低我的规格

 "/api/Account": {    
  "post": {
    "tags": [ "Account" ],
    "operationId": "Account_RequestPasswordReset",
    "consumes": [],
    "produces": [ "application/json", "text/json", "application/xml", "text/xml" ],
    "parameters": [
      {
        "name": "email",
        "in": "query",
        "required": true,
        "type": "string"
      }
    ],
    "responses": {
      "200": {
        "description": "OK",
        "schema": { "type": "object" }
      }
    }
  }
},

如何让它不为同一个端点生成 2 个操作?

0 个答案:

没有答案