繁体   English   中英

如何使用带有可选参数的WebAPI 2创建真正的多用途端点?

[英]How do I create a truly multi-purpose endpoint using WebAPI 2 with optional parameters?

感谢您的光临。

我正在尝试使以下代码起作用:

[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);
        }
    }

现在一切正常,如果提供了查询字符串,我可以使用端点来获取用户列表和单个用户列表。

干杯!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM