我按照https://github.com/domaindrivendev/Swashbuckle.AspNetCore
的说明操作services.AddSwaggerGen(options =>
{
options.SwaggerDoc("v1", new Info
{
Version = "v1",
Title = "API (version 1.0)",
Description = "A RESTFUL API"
});
options.IncludeXmlComments(xmlDocPath);
});
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "API");
});
//[Route("{abc}/v1/Values")]
[Route("v1/Values")]
public class ValuesController : Controller
{
// GET api/values
/// <summary>
/// aaaaaaaaaaaaaaaaaaaaaa
/// </summary>
/// <returns></returns>
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// POST api/values
/// <summary>
/// bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
/// </summary>
/// <param name="value"></param>
[HttpPost]
public void Post([FromBody]string value)
{
}
}
运行它,api服务工作正常,并且swagger可以正常使用文档。
如果我将路由从[Route("v1/Values")]
更改为[Route("{abc}/v1/Values")]
,则api服务正常,但是招摇显示500错误。
如果我将路由从[Route("v1/Values")]
更改为[Route("{abc}/v1/Values")]
并删除文档,请注释以下代码options.IncludeXmlComments(xmlDocPath)
,api服务正常工作,并且swagger工作正常,无需文档。
基于上述,当路由有参数时,似乎Swashbuckle.AspNetCore
不支持文档,是真的吗?如果不是,有人知道如何解决它吗?