gpt4 book ai didi

c# - 一个 cs 文件中的多个 api Controller 类

转载 作者:行者123 更新时间:2023-11-30 21:50:18 24 4
gpt4 key购买 nike

问题

是否可以在一个文件中包含多个 Controller ?

示例

位于 Controllers 文件夹中的 Controller 文件 TestController.cs:

TestController.cs

[RoutePrefix("api/v2")]
public class TestController : ApiController
{
// action methods here...
}

[RoutePrefix("api/v1")]
public class OldTestController " ApiController
{
// all action methods return an error stating that
// the user should update their client to be compatible with
// verison 2 of the API.
}
  • GET api/v2/Test 将返回数据。
  • GET api/v1/Test 将返回错误信息。

描述

我制作了我的 Rest API 的第 2 版,其中包括对旧移动应用程序的重大更改。

我希望旧路由向用户显示 json 错误消息以更新他们的移动应用。

我怎样才能做到这一点?

最佳答案

一个文件中可以有多少个 Controller 没有限制。

要将 Controller 标记为过时,一种选择是实现 ActionFilter 以返回您想要的错误。

public class ObsoleteApiAttribute : System.Web.Http.Filters.ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
var response = actionContext.Request.CreateResponse(System.Net.HttpStatusCode.BadRequest, "Update your app");
actionContext.Response = response;
}
}

然后只需应用到您想要返回错误的 Controller 或方法。

[ObsoleteApi]
[RoutePrefix("api/v1")]
public class OldTestController : ApiController
{
...
}

关于c# - 一个 cs 文件中的多个 api Controller 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36459460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com