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

ehxuflar  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(182)

我的Web API有四个控制器:登录、用户、产品和销售。还有三种不同的客户端应用程序,每一种都只使用一个控制器。管理员有一个用户管理应用程序,经理有一个产品管理应用程序,客户有一个“购买此”应用程序。那么,三种不同的Web API呢?
当然不是。因为所有的控制器都共享同一个数据库,所以我们希望它都包含在一个项目中。它们在后台也共享一些功能,并且所有的API都需要支持Login控制器。
我想要的是我的API有三个不同的URL:

  • example.com/Users
  • example.com/Products
  • example.com/Sales

这些应该是三个不同的Swagger端点,每个都有登录控制器。我只是想知道这是否甚至是可能的,或者我是否需要三个不同的项目来让这个工作。

z5btuh9x

z5btuh9x1#

好吧,我不得不找到这个关于多个斯瓦格文件的帖子,但我设法让它工作。
它从builder.services.AddSwaggerGet()开始,在这里您多次使用options.SwaggerDoc()来创建多个文档。
然后,使用app.UseSwaggerUI()为每个文档添加多个端点,指定上一步中的相关文档名称。
并且对于每个控制器,您添加[ApiExplorerSettings(GroupName = "...")]来将控制器链接到特定的文档。如果没有它,它们最终会出现在所有文档中...
结果是我现在有一个包含多个Swagger端点和多个Web API的项目。

相关问题