带有 ASP.NET v5 Azure Api 应用程序的 Swagger
Swagger w/ ASP.NET v5 Azure Api App
我正在尝试使用 Swagger + Swashbuckle 设置一个 Api 应用程序 (Azure),正如 Scott Hanselman 在 //Build 会议上演示的那样:http://channel9.msdn.com/Events/Build/2015/2-628。
我已经安装(使用 NuGet)包 Swagger.Api 和 Swashbuckle.Core。它没有添加我期望的任何控制器或设置,以便拥有一个招摇的页面。当我导航到 {baseUrl}\swagger 时,我收到 404 错误。
我认为,因为它有一个 UI,所以除了 Api 应用程序之外,它还需要一个 Web 应用程序,但我已经重新观看了演示,Scott 明确表示您可以添加 Swagger + 虚张声势到任何 Api 应用程序。在第二个应用程序中,虽然我认为 Api 发现可能存在问题。有人设置成功了吗?
您完成了所有正确的步骤,但不幸的是 ASP.NET 5,Swashbuckle 还无法正常工作。
你可以得到啊!这是支持 ASP.NET v6 here 的下一个 Swashbuckle 版本。那应该使一切正常。
这个答案现在已经过时了。请参阅其他答案。
有一篇很好的博文描述了您遇到的问题:https://alexanderzeitler.com/articles/Deploying-a-ASP-NET-MVC-6-API-as-Azure-API-App-in-Azure-App-Services/
这里介绍了如何添加 Ahoy!打包到 ASP.NET v6 Web Api 项目并将其作为 API 应用程序添加到 Azure。
这是另一个来源:http://devmeetsbi.ghost.io/help-and-test-page-for-asp-net-web-api-asp-net-5-and-mvc-6/
时间流逝,现在 Swashbuckle 适用于 vNext(对我来说是 beta8,可能还有其他版本)- 感谢团队和贡献者!
在project.json中添加包:
"Swashbuckle": "6.0.0-*",
在 startup.cs 中的 ConfigureServices():
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;
});
在startup.cs中配置():
app.UseSwaggerGen();
app.UseSwaggerUi();
现在您可以访问您的 API doco - http://domain:port/swagger/ui/index.html
访问您的 Swagger 定义 - http://domain:port/swagger/v1/swagger.json
然后假设您至少有一个面向互联网的 dev/uat/staging/prod 环境,获取定义 URL 然后在 http://editor.swagger.io/ 执行文件-> 导入 URI - 现在您有代码生成还有大约 20 个客户:)
如果您也愿意,也可以设置自己的代码生成服务器 (https://github.com/swagger-api/swagger-codegen),但是我利用了现有的在线生成器。在线编辑器也有完整的模型和关系定义,至少在我的情况下,我使用 EF7 完全定义了我的模型(我知道,恶心......但它比 <= EF6 好得多,而且 ServiceStack 还不支持 CoreCLR) .根据项目的大小,这可以为您节省几个小时到几周的工作记录时间,而且它会随着您编写更多代码而动态更新。你也可以用它来测试你的端点,但我还是更喜欢 PostMan。
https://github.com/mrsheepuk/ASPNETSelfCreatedTokenAuthExample/tree/beta8
处的完整示例项目
感谢 MrSheepUK
HTH
我正在尝试使用 Swagger + Swashbuckle 设置一个 Api 应用程序 (Azure),正如 Scott Hanselman 在 //Build 会议上演示的那样:http://channel9.msdn.com/Events/Build/2015/2-628。
我已经安装(使用 NuGet)包 Swagger.Api 和 Swashbuckle.Core。它没有添加我期望的任何控制器或设置,以便拥有一个招摇的页面。当我导航到 {baseUrl}\swagger 时,我收到 404 错误。
我认为,因为它有一个 UI,所以除了 Api 应用程序之外,它还需要一个 Web 应用程序,但我已经重新观看了演示,Scott 明确表示您可以添加 Swagger + 虚张声势到任何 Api 应用程序。在第二个应用程序中,虽然我认为 Api 发现可能存在问题。有人设置成功了吗?
您完成了所有正确的步骤,但不幸的是 ASP.NET 5,Swashbuckle 还无法正常工作。
你可以得到啊!这是支持 ASP.NET v6 here 的下一个 Swashbuckle 版本。那应该使一切正常。
这个答案现在已经过时了。请参阅其他答案。
有一篇很好的博文描述了您遇到的问题:https://alexanderzeitler.com/articles/Deploying-a-ASP-NET-MVC-6-API-as-Azure-API-App-in-Azure-App-Services/
这里介绍了如何添加 Ahoy!打包到 ASP.NET v6 Web Api 项目并将其作为 API 应用程序添加到 Azure。
这是另一个来源:http://devmeetsbi.ghost.io/help-and-test-page-for-asp-net-web-api-asp-net-5-and-mvc-6/
时间流逝,现在 Swashbuckle 适用于 vNext(对我来说是 beta8,可能还有其他版本)- 感谢团队和贡献者!
在project.json中添加包:
"Swashbuckle": "6.0.0-*",
在 startup.cs 中的 ConfigureServices():
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;
});
在startup.cs中配置():
app.UseSwaggerGen();
app.UseSwaggerUi();
现在您可以访问您的 API doco - http://domain:port/swagger/ui/index.html
访问您的 Swagger 定义 - http://domain:port/swagger/v1/swagger.json
然后假设您至少有一个面向互联网的 dev/uat/staging/prod 环境,获取定义 URL 然后在 http://editor.swagger.io/ 执行文件-> 导入 URI - 现在您有代码生成还有大约 20 个客户:)
如果您也愿意,也可以设置自己的代码生成服务器 (https://github.com/swagger-api/swagger-codegen),但是我利用了现有的在线生成器。在线编辑器也有完整的模型和关系定义,至少在我的情况下,我使用 EF7 完全定义了我的模型(我知道,恶心......但它比 <= EF6 好得多,而且 ServiceStack 还不支持 CoreCLR) .根据项目的大小,这可以为您节省几个小时到几周的工作记录时间,而且它会随着您编写更多代码而动态更新。你也可以用它来测试你的端点,但我还是更喜欢 PostMan。
https://github.com/mrsheepuk/ASPNETSelfCreatedTokenAuthExample/tree/beta8
处的完整示例项目感谢 MrSheepUK
HTH