时间流逝,现在 Swashbuckle 适用于 vNext(对我来说是 beta8,可能还有其他版本) - 感谢团队和贡献者!
在 project.json 添加包:
"Swashbuckle": "6.0.0-*",
在 ConfigureServices() 的 startup.cs 中:
services.AddSwaggerGen();
services.ConfigureSwaggerDocument(options =>
{
options.SingleApiVersion(new Info
{
Version = "v1",
Title = "My Super API",
Description = "A Super API using Swagger and Swashbuckle",
TermsOfService = ""
});
});
services.ConfigureSwaggerSchema(options =>{
options.DescribeAllEnumsAsStrings = true;
});
在 Configure() 的 startup.cs 中:
app.UseSwaggerGen();
app.UseSwaggerUi();
现在您可以访问您的 API doco - http://domain:port/swagger/ui/index.html
访问您的 Swagger 定义 - http://domain:port/swagger/v1/swagger.json
然后假设您至少有一个面向 Internet 的 dev/uat/staging/prod 环境,获取定义 URL,然后在http://editor.swagger.io/处执行 File-> Import URI - 现在您有大约 20 个代码生成客户也是:)
如果您也愿意,您也可以设置自己的代码生成服务器(https://github.com/swagger-api/swagger-codegen),但是我利用了现有的在线生成器。在线编辑器也有完整的模型和关系定义,至少在我使用 EF7 完全定义模型的情况下(我知道,我知道......但它比 <= EF6 好得多,而且 ServiceStack 还不支持 CoreCLR) . 根据您项目的大小,这可以为您节省几个小时到几周的工作记录,而且它会随着您编写更多代码而动态更新。你也可以用它来测试你的端点,但我还是更喜欢 PostMan。
完整示例项目位于https://github.com/mrsheepuk/ASPNETSelfCreatedTokenAuthExample/tree/beta8
MrSheepUK 的大事
高温高压