之前文章有介绍在ASP.NET WebAPI 中使用Swagger生成文档,ASP.NET Core 1.0中同样也支持。
依赖包
"dependencies": {
"Swashbuckle.SwaggerGen": "6.0.0-rc1-final",
"Swashbuckle.SwaggerUi": "6.0.0-rc1-final"
}
项目属性选中“生成时生成输出”选项用来生成XML注释
Startup类
public class Startup
{
//private readonly string pathXml = @"\\Mac\Home\Desktop\asp.net core\learn_asp.net core 1.0\artifacts\bin\SwaggerForASP.NETCore\Debug\dnx451\SwaggerForASP.NETCore1.0.xml";
private readonly string pathXml = @"C:\Users\irving\Desktop\asp.net core\LearningASP.NETCore\artifacts\bin\LearningASP.NETCore\Debug\dnx451\LearningASP.NETCore.xml"; public Startup(IHostingEnvironment env)
{
// Set up configuration sources.
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddEnvironmentVariables();
Configuration = builder.Build();
} public IConfigurationRoot Configuration { get; set; } // This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc(); services.AddSwaggerGen(); services.ConfigureSwaggerDocument(options =>
{
options.SingleApiVersion(new Info
{
License = new License { Name = "irving", Url = @"http://cnblogs.com/irving" },
Contact = new Contact { Name = "irving", Email = "zhouyongtao@outlook.com", Url = @"http://cnblogs.com/irving" },
Version = "v1",
Title = "ASP.NET Core 1.0 WebAPI",
Description = "A Simple For ASP.NET Core 1.0 WebAPI",
TermsOfService = "None"
});
options.OperationFilter(new ApplyXmlActionComments(pathXml));
}); services.ConfigureSwaggerSchema(options =>
{
options.IgnoreObsoleteProperties = true;
options.DescribeAllEnumsAsStrings = true;
options.ModelFilter(new ApplyXmlTypeComments(pathXml));
});
} // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug(); if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
} app.UseIISPlatformHandler(); app.UseStaticFiles(); app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
}); app.UseSwaggerGen(); app.UseSwaggerUi();
} // Entry point for the application.
public static void Main(string[] args) => WebApplication.Run<Startup>(args);
}
OrdersController类
[Route("api/orders")]
public class OrdersController : Controller
{
[HttpGet]
[Route("info")]
public async Task<ActionResult> Info()
{
return await Task.Run(() =>
{
return Json(new { name = "irving", age = });
}).ContinueWith(t => t.Result);
} // GET: api/values
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
} // GET api/values/5
[HttpGet("{id}")]
public string Get(int id)
{
return "value";
} // POST api/values
[HttpPost]
public void Post([FromBody]string value)
{
} // PUT api/values/5
[HttpPut("{id}")]
public void Put(int id, [FromBody]string value)
{
} // DELETE api/values/5
[HttpDelete("{id}")]
public void Delete(int id)
{
}
}
访问:http://localhost/swagger/ui/index.html
REFER:
http://damienbod.com/2015/12/13/asp-net-5-mvc-6-api-documentation-using-swagger/
https://api.gitcafe.com/apidoc/
Swagger框架学习分享http://blog.csdn.net/u010827436/article/details/44417637
Micro Service工具集之Swagger:可测试的样式化API文档http://ningandjiao.iteye.com/blog/1948874
https://github.com/aspnet/Docs/blob/master/aspnetcore/tutorials/web-api-help-pages-using-swagger.md
https://docs.microsoft.com/en-us/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-2.1