带有Flurl HTTP的JSON:API规范过滤器参数

问题描述

我们在API上使用JSON:API规范。当前在使用C#中的Flurl将过滤器参数格式化为规范时遇到问题。

示例:

        var url = await Helpers.GetAPIPath()
           .AppendPathSegment("orders")
           .WithOAuthBearerToken(Helpers.GetAPIToken())
           .SetQueryParams(new {
               filters = "[work_orders]=true,[status]=pending_approval",include = "shipping-address,inventory-items.part"
           }).GetAsync();

这会产生/orders?filters[work_orders]=true,[status]=pending_approval&include=shipping-address,inventory-items.part

以下是带有多个过滤器https://jsonapi.org/recommendations/#filtering

的JSON:API请求的文档

如何为JSON:API规范构造类似于filter[work_orders]=true,filter[status]=pending_approval的过滤器?

非常感谢您的帮助!

解决方法

此代码段能够实现正确的过滤参数。不知道是否有更清洁的方法来实现此目的,但到目前为止,它仍然有效!

         var orderResponse = await Helpers.GetAPIPath()
            .AppendPathSegment("orders")
            .WithOAuthBearerToken(Helpers.GetAPIToken())
            .SetQueryParam("filter[work_orders]=true")
            .SetQueryParam("filter[status]=pending_approval")
            .SetQueryParams(new {
                include = "shipping-address,inventory-items.part",}).GetAsync();

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...