如何为用 ASP.NET 编写的 API 添加起始页?

How to include an start-page for an API written in ASP.NET?

我继承了一个相当没有记录的 Visual Studio API 项目,其中有许多子项目,其中一个叫做 API,我假设我正在看的是 ASP.net .

背景

我一直在使用使用不同技术和框架(perl、cgi、python、flask,仅举几例)构建的 APIs,但我是新手 ASP.net. 经过几天的研究,我在 Visual Studio (VS) 中得到了 API 运行,并且它还与 UI 进行了对话。

挑战

由于我在 VS 中有两个 Startup Projects,在 VS 中点击 Start 时会打开两个浏览器 windows, UI 和 API。 UI 做了它应该做的事情,但是带有 API 的浏览器显示了这样的 HTTP 404 错误

这意味着我可能定义了各种端点 /foo/bar,但没有 /。我怎么做?理想情况下,它应该返回一个 json,其中包含 API-(子)项目的名称和当前版本。

我目前的做法

为了自己解决问题,我缺少正确的 ASP.net 搜索词。我什至正在努力实施解决方法以在 / 处提供一个普通的 HTML 文件。 项目树中 index.html? 我尝试了根文件夹,以及一个名为 public 的文件夹,但两者都不起作用,我一直收到404错误。

非常感谢您的帮助!

这里有两个选项,用于自动记录您的端点。

  1. 使用 HelpPage,它可能包含在 Visual Studio 项目模板中
  2. 使用 swashbuckle nuget 包安装 swagger

如果您选择 option 1,那么您可能需要尝试使用项目模板并选择一个合适的模板。然后您应该将所有现有代码复制到新项目模板中。

Swagger 现在似乎更受欢迎,所以你应该尝试一下,特别是如果你正在使用现代代码库。您可以向控制器端点添加 XML 评论,它们将显示在您的 swagger 页面上,http:/localhost/swagger/ui/index。您将需要安装 nuget 包并按照教程进行操作。

假设您在根目录中创建了一个文件 index.html,为了将其显示为(子)项目起始页,请在 Solution Explorer 中右键单击该项目,选择属性。将弹出一个新视图,您可以在其中定义 Web > Start Action 以指向 Specific Page(而不是 Current Page) 您输入 index.html 的位置。点击 CTRL+S 保存,然后启动项目。