当路由有参数时,Swashbuckle.AspNetCore是否支持文档?

时间:2017-04-10 10:10:47

标签: swagger swashbuckle

我按照https://github.com/domaindrivendev/Swashbuckle.AspNetCore

的说明操作
  1. 创建一个新的asp.net核心web api项目
  2. 添加nugget包Swashbuckle.AspNetCore
  3. 为swagger添加代码
  4. 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");
    });
    
    1. 为控制器添加代码
    2. //[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不支持文档,是真的吗?如果不是,有人知道如何解决它吗?

0 个答案:

没有答案