如何使用带有可选参数的WebAPI 2创建一个真正的多用途端点?
本文关键字:一个 端点 多用途 创建 何使用 WebAPI 参数 | 更新日期: 2023-09-27 17:51:17
感谢您的关注。
我正在尝试使以下代码工作:
[RoutePrefix("api/user")]
public class UserController : ApiController
{
[AllowAnonymous]
[Route("{email}")]
public IHttpActionResult Get(string email = null)
{
if (!string.IsNullOrEmpty(email))
{
return Json(someUserProfileObject);
}
return Json(someListOfUserProfiles);
}
}
每当我尝试访问/api/user/some@email.com时,我得到一个405
。
我正要写完这个问题,突然发现了答案。基本上,特殊字符在URL请求路径中不能很好地工作。我使用了一个查询字符串,并将代码修改为:
[RoutePrefix("api/user")]
public class UserController : ApiController
{
[AllowAnonymous]
[Route("")]
public IHttpActionResult Get(string email = null)
{
if (!string.IsNullOrEmpty(email))
{
return Json(someUserProfileObject);
}
return Json(someListOfUserProfiles);
}
}
现在一切正常,如果提供了querystring,我可以使用端点来获取用户列表以及单个用户。
干杯!