我可以在单个 Web API 中拥有多个 Swagger 端点吗?

Wim*_*ink 2 swagger asp.net-core-webapi .net-6.0

我的 Web API 有四个控制器:登录、用户、产品和销售。还有三个不同的客户端应用程序,每个应用程序仅使用一个控制器。管理员有一个用户管理应用程序,经理有一个产品管理应用程序,客户有一个“购买这个”应用程序。那么,三个不同的 Web API?
嗯,不。由于所有控制器共享相同的数据库,因此我们希望将其全部包含在一个项目中。它们还在后台共享一些功能,并且所有 API 也需要支持登录控制器。
我想要的是我的 API 具有三个不同的 URL:

  • example.com/用户
  • example.com/产品
  • example.com/销售

这些应该是三个不同的 Swagger 端点,每个端点都有登录控制器。我只是想知道这是否可能,或者我是否需要三个不同的项目才能使其发挥作用。

Wim*_*ink 5

好吧,我必须找到这篇关于多个 Swagger 文档的文章,但我设法让它发挥作用。
它从 builder.Services.AddSwaggerGen() 开始,您可以多次使用 options.SwaggerDoc() 创建多个文档。
然后,使用 app.UseSwaggerUI() 为每个文档添加多个端点。指定上一步中的相关文档名称。
对于每个控制器,您添加[ApiExplorerSettings(GroupName = "...")]将控制器链接到特定文档。如果没有它,它们最终会出现在所有文档中...
结果是我现在有一个项目,它包含多个 Swagger 端点,从而包含多个 Web API。