当前位置: 首页 > 知识库问答 >
问题:

如何改变API平台中数组的查询格式?

魏晨
2023-03-14

我使用最新版本的API平台,我想知道是否可以改变处理查询字符串中数组的方式。

默认行为依赖于PHP处理数组的方式:

/customers?cars[]=audi&cars[]=mercedes&cars[]=bmw

根据Swagger文档:https://swagger.io/docs/specification/serialization/,它可以处理不同的方式:

/users?id=3,4,5
/users?id=3|4|5

使用API平台可以使用这种格式吗?我在选项中没有找到任何东西,我想我可以使用事件来“欺骗”它(也许是< code>DeserializeListener)。

共有1个答案

金兴朝
2023-03-14

Swagger似乎支持这种输入格式:参数的样式名是< code>deepObject。

有很多方法可以支持查询中的多个输入,因为查询实际上是一个包含var=value的简单字符串,因此您可以想象任何您想要的,因为var可能是重复的。PHP默认使用数组样式(或<code>deepObject</code>)方法,这很好。

API平台默认支持这种“多重过滤”查询:https://api-platform.com/docs/core/filters/#search-filter

如果要使用以下方法:< code>/users?id=3|4|5,您可以轻松地定义一个自定义过滤器,并直接使用请求来展开< code>id参数,并在内部完成您的查询。

 类似资料:
  • 我正在用SpringDataJPA开发一个SpringBoot应用程序。我正在使用一个定制的JPQL查询来按某个字段分组并获取计数。以下是我的存储库方法。 其工作和结果如下所示: 但是,我希望我的Restendpoint以如下格式的输出响应 我怎样才能做到这一点?

  • 我试图记录从。xml文件调用的sql查询。我面临的问题是,当我看到日志时,它没有很好地格式化。另外,我不知道为什么它会重复... [主]信息org.dozer.dozerBeanMapper-初始化一个新的dozer bean Mapper实例。[主]信息org.dozer.dozerBeanMapper-初始化一个新的dozer bean Mapper实例。[main]信息org.springf

  • 我试图将从PostgreSQL表中提取的字符串(使用索引聚合数组)转换为正确格式化的日期进行查询。我的问题是我的日期格式不同,包括YYYY、Mon-yyy和DD-Mon-y。我的计划是创建日期范围,以包含由模糊日期表示的所有可能时间。例如,“2000”将转换为“2000年1月1日”和“2000年12月31日”,并根据自定义输入日期范围进行测试。同样,“2014年2月”也将改为“2014年1月1日”

  • 最近一直在学习聚合通道,感觉虽方便但使用很复杂,有点不得门道 比如我现在有个表,结构分别为: 我想更新 id: 2 对象的 array 中 id: 22 项的 name 是否能通过聚合实现更新呢? 尝试写了几次都未能成功,我现在能写水平也就如下:

  • 我打算将2D中布尔数组的值从True更改为false,但代码不起作用。即使我使用语句B[r][c]=false,输出结果也是一样的。有人能帮我吗,谢谢。

  • 我有一个关于查找数组中对象的计数的问题。我的数组是: 我试图在totalPositions数组中找到每个位置的总计数,因此我的最终数组将如下所示: 我创建了一个函数来求和“总位置”数组中的每个位置,并将总和推入总位置计数。我的函数完成了这项工作,我得到了总计数,但它改变了父数组“完整位置”,第一个“完整位置”的“总位置”被“总位置计数”数组替换。我试图创建一个备份的完整位置,并使用它的计算,仍然两