gpt4 book ai didi

.net - 网络API 2 : how searching

转载 作者:行者123 更新时间:2023-12-03 05:39:35 24 4
gpt4 key购买 nike

在 ASP Web API 2 中,我想在 REST URI 中实现搜索功能。

例如,如果我有资源客户

/base_url/customers
/base_url/customers/1
....

我想要例如实现:

/base_url/customers?active=true

如何在 Web API 2 Controller 中实现搜索? (我不想使用 OData 协议(protocol),因为我有 DTO 对象:我的 Controller 必须与 DTO 对象交互,而不是直接与模型对象交互)。

最佳答案

  1. 定义一个搜索选项类,其中包含您希望客户端搜索的所有属性。现在我们将其称为 CustomerSearchOptions:

    public class CustomerSearchOptions
    {
    public bool IsActive { get; set; }

    public string AnotherProperty {get; set;}
    }
  2. 在 API Controller 上定义一个 Get 方法,用于获取 CustomerSearchOptions 类型的参数,并使用 [FromUri] 属性修饰该参数。

  3. get 方法的实现将使用搜索选项搜索您的存储库并返回匹配的数据 (MyCustomerDto):

        [HttpGet]
    [ResponseType(typeof(List<MyCustomerDto>))]
    public async Task<IHttpActionResult> SearchAsync([FromUri] CustomerSearchOptions searchOptions)
    {
    if (searchOptions == null)
    {
    return BadRequest("Invalid search options");
    }

    var searchResult = await myRepo.SearchAsync(searchOptions);

    return Ok(searchResult);
    }
  4. Web API 的客户端需要调用您的 API,并在查询字符串中而不是在消息正文中传递搜索选项。

/base_url/customers?isActive=true&anotherProperty=somevalue

仅此而已。

希望有帮助。

关于.net - 网络API 2 : how searching,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27300173/

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