微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何更改 API 平台中数组的查询格式?

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

认行为依赖于 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 平台使用这种格式吗?我在选项中没有找到任何东西,我想我可以使用事件来“欺骗”(DeserializeListener 也许)。

解决方法

Swagger 似乎支持这种输入格式:参数的样式名称是 deepObject

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

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

如果您想使用以下方法:/users?id=3|4|5,您可以轻松定义 a custom filter,并直接使用请求来分解 id 参数并在内部完成您的查询。>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。