首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有不同url参数的web api调用get方法

具有不同url参数的web api调用get方法
EN

Stack Overflow用户
提问于 2016-10-13 03:21:00
回答 1查看 19.2K关注 0票数 3

我有一组实现get接口的需求:

代码语言:javascript
复制
 - api/Item
 - api/Item?name=test
 - api/Item?updated=2016-10-12
 - etc

我将这些方法定义为:

代码语言:javascript
复制
 - get() //returns all items
 - getName([FromUri] string name) 
 - getUpdated([FromUri] string updated)

我的问题是-如果参数不存在(假设调用是测试),get()方法就会被调用,因为找不到“测试”参数映射。

在这种情况下,我需要返回错误响应。是否有其他合适的方法从URL中读取参数以满足接口要求?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-13 03:53:05

你可能正在寻找类似这样的东西

代码语言:javascript
复制
[RoutePrefix("api/items")]
public class ItemsController : ApiController
{

    public IHttpActionResult Get()
    {
        return Ok(new List<string> { "some results collection" });
    }

    [Route("names")]
    public IHttpActionResult GetByName([FromUri]string name = null)
    {
        if (string.IsNullOrWhiteSpace(name))
        {
            return BadRequest("name is empty");
        }
        return Ok("some result");
    }

    [Route("updates")]
    public IHttpActionResult GetUpdates([FromUri]string updated = null)
    {
        if (string.IsNullOrWhiteSpace(updated))
        {
            return BadRequest("updated is empty");
        }
        return Ok("some result");
    }
}

当您调用这些REST端点时,您的REST api调用将如下所示

获取接口/ items 以检索所有项

获取要按名称检索的api/items/names/john,如果未提供参数,则返回错误

获取api/items/updated/test以检索更新,如果未提供参数,则返回错误

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40006718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档