gpt4 book ai didi

c# - WebAPI 路由表

转载 作者:行者123 更新时间:2023-11-30 12:29:09 30 4
gpt4 key购买 nike

WebAPI配置

config.Routes.MapHttpRoute(
name: "TestApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);

我的 API Controller :

public class TestController : ApiController
{
[HttpPost]
public string Send([FromBody] string id)
{
return "Got " + id;
}
}

在我CHANGEPARAM“ID”的NAME之前,这一切都很好,让我们在我的 API 过程中说“输入”。

我的(错误的)假设
我的印象是,通过将 {xx} 括号放在路由表 url 上,我们实际上是在声明请求调用中将使用任何第一个参数。

根据我的小样本,这似乎不是真的。

问题 1:
这是否意味着如果我有 10 个 API 方法(比如注册、登录、注销、sendemail ...)而不是标准默认值 get/post/put/delete ....我将需要 10 个单独的路由条目一个?

问题 2:
此外,我们如何在路由表上表示需要一类 POCO 字段的 API?我们是否在 MapHttpRoute 上声明每个人和单独的字段名称?

最佳答案

如果您将操作方法​​的 id 参数重命名为 input,则每次调用此操作都必须传递一个名为 input 的参数(不是id!) 在请求正文中。

由于参数绑定(bind)是基于匹配的名称,您不能在不更新调用客户端的情况下重命名主体参数(如果可能的话)。不过,当您同时更新路由定义和相应操作方法的参数时,您可以重命名路由参数占位符。

关于c# - WebAPI 路由表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19409869/

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