.NET Core API文档

时间:2018-11-20 23:28:35

标签: c# .net-core asp.net-core-webapi

我正在尝试实现API文档并在我的新.net核心项目中使用Microsoft.AspNetCore.Mvc.ApiExplorer。我已按照本教程中的每个步骤进行操作:

https://andrewlock.net/introduction-to-the-apiexplorer-in-asp-net-core/

我正在收到此异常:

    Microsoft.Extensions.DependencyInjection.ActivatorUtilities.FindApplicableConstructor(Type instanceType, Type[] argumentTypes, out ConstructorInfo matchingConstructor, out Nullable<int>[] parameterMap)
Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateFactory(Type instanceType, Type[] argumentTypes)
Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.DefaultPageModelActivatorProvider.CreateActivator(CompiledPageActionDescriptor actionDescriptor)
Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.DefaultPageModelFactoryProvider.CreateModelFactory(CompiledPageActionDescriptor descriptor)
Microsoft.AspNetCore.Mvc.RazorPages.Internal.PageActionInvokerProvider.CreateCacheEntry(ActionInvokerProviderContext context, FilterItem[] cachedFilters)
Microsoft.AspNetCore.Mvc.RazorPages.Internal.PageActionInvokerProvider.OnProvidersExecuting(ActionInvokerProviderContext context)
Microsoft.AspNetCore.Mvc.Internal.ActionInvokerFactory.CreateInvoker(ActionContext actionContext)
Microsoft.AspNetCore.Mvc.Internal.MvcAttributeRouteHandler+<>c__DisplayClass12_0.<RouteAsync>b__0(HttpContext c)
Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext)
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

似乎DocumentationController中的对象引用从未传入。 在ASP.Net中,您只需生成帮助页面即可。谁能向我解释如何正确使用ApiExplorer或提供替代方法来创建Web API文档?

1 个答案:

答案 0 :(得分:0)

您提供的链接在.NET Core 2.0发行之前于2017年创建。 2.0与以前的版本之间存在巨大差异。显示的文档属于在1.x上使用的代码。我建议你检查一下。这是documentation,介绍如何逐步进行设置。基本上,您基本上需要更新您的startup.cs文件。 Startup中的代码将有助于生成一个JSON文件,其中包含Web API上的所有信息。 UseSwaggerUI函数将帮助您生成完整的swagger UI。该用户界面随附了可直接运行和测试API(包括身份验证)的选项。

Swagger不是.NET特有的,它的json输出非常通用且流行。微软和其他几个公司也已经开始集成工具以使用swagger的json文件。这意味着,只要您为API设置了醒目的json设置,就可以利用这些工具。例如,您可以生成使用代码(2.2版将于12月发布),甚至可以在UWP上生成整个客户端。我非常确定,一旦您同时使用摇摇杆,其他流行的技术(例如react和angular)也将具有自动生成工具。