gpt4 book ai didi

c# - 具有不同url参数的web api调用get方法

转载 作者:行者123 更新时间:2023-11-30 14:48:54 25 4
gpt4 key购买 nike

我有一组需求来实现get接口(interface):

 - api/Item
- api/Item?name=test
- api/Item?updated=2016-10-12
- etc

我将这些方法定义为:

 - get() //returns all items
- getName([FromUri] string name)
- getUpdated([FromUri] string updated)

我的问题是 - 如果参数不存在(假设调用是 api/Item?test=test),则调用 get() 方法未找到“测试”参数映射。

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

最佳答案

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

[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 调用将类似于

GET api/items 获取所有项目

GET api/items/names/john 根据名字获取,如果没有提供参数,则返回错误

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

关于c# - 具有不同url参数的web api调用get方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40006718/

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