【问题标题】:What's the best way to change a controller name in swagger?在大摇大摆中更改控制器名称的最佳方法是什么?
【发布时间】:2018-05-01 01:49:00
【问题描述】:

我想换一家公司。有没有办法改变这个?无需重命名控制器。

控制人名称(上方以粗体显示)应保留为公司。但在每一个操作中,我都想将其更改为公司。

我不使用 [Route] 的原因是因为我有一个超类,它定义了:

[Route("admin/codes/[controller]")]

公司控制器继承自该类。我想在 url 中保留“admin/codes/”。

这里最好的解决方案是什么?无需重命名控制器类。

【问题讨论】:

  • swagger 的全部意义在于以友好的方式向将要使用它的人公开您的 Rest api。如果您显示为公司,但控制器有公司,它将如何工作?这没有多大意义。不是吗?
  • 假设我只能在 url 中更改它。这可能吗?

标签: c# asp.net-web-api swagger swagger-ui


【解决方案1】:

old philosophical singular-plural battle 放在一边,Swagger 是您的 API 的视口;您不应该在 Swagger 中更改控制器名称​​只是,因为使用您的 API 的可怜人会相当困惑 - 他们会调用 /admin/codes/companies 并得到 404 作为回报,因为 MVC 框架没有通知控制器的新名称。

我认为您应该寻找的是如何更改控制器的路由在 MVC 框架内,并且您可以在不更改超类的路由的情况下做到这一点 - 例如,使用 [RoutePrefix("companies")]注释。

【讨论】:

    猜你喜欢
    • 2016-10-15
    • 2016-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多