【发布时间】:2019-06-15 01:03:56
【问题描述】:
我正在使用 aspnet core 2.2 创建 RESTful API。我有一个标准设置,其中每个模型都有自己的控制器,带有 GET 和 POST 操作。我正在使用 Swashbuckle.AspNetCore NUGET 包并使用 Microsoft 文档中的 this 文章。
现在,当我查看生成的 swagger 文件时,它有多个 GET 和 POST operationId。如何在不使用Swashbuckle.AspNetCore.Annotations 的情况下配置自定义 operationId?
这是我的 Action 方法的样子:
[HttpPost]
[ProducesResponseType(200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
public async Task<ActionResult<Response>> PostAsync([FromBody]Request request)
{
Response result = await _context.PostAsync(request);
return Ok(result);
}
我有多个控制器,它们都遵循相同的模式。
我的 Startup 类如下所示:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
});
...
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
...
}
我已经看过this 解决方案,但不想走那条路。
【问题讨论】:
标签: asp.net-core swagger swashbuckle