【问题标题】:.NET Core API Documentation.NET Core API 文档
【发布时间】:2019-04-23 11:55:29
【问题描述】:

我正在尝试实现 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 文档的替代解决方案?

【问题讨论】:

  • 你好。到目前为止,很难帮助您提供您所提供的内容。您可以添加异常消息和您的代码吗?我猜可能是您的控制器类导致了问题。你有多个构造函数吗?
  • 尝试招摇。使用更多功能实现起来要容易得多。您可以测试运行 API 等

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


【解决方案1】:

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

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

【讨论】:

  • 我在 .NET 核心文档中阅读了有关 Swagger 的信息。我试图找到一个集成到实际框架的解决方案,但看起来这是最好的选择。无论如何,谢谢你的提示。
  • 以什么方式集成?即将发布的 2.2 版具有与 swagger 集成的附加功能。由于微软在与 swagger 集成方面付出了如此多的努力,我认为他们不会制作第一方解决方案
  • 看看这个使用昨天发布的新框架的更新实现youtube.com/watch?v=_vw3hcnSA1Y
猜你喜欢
  • 1970-01-01
  • 2018-09-16
  • 2015-10-31
  • 1970-01-01
  • 2018-05-08
  • 2019-05-09
  • 1970-01-01
  • 2023-04-04
  • 2023-01-05
相关资源
最近更新 更多