I am trying to build a request with Strapi filtering the json response, depending on a string contained in an array of options.
Here is the Json :
{
"data": [
{
"id": 1,
"attributes": {
"createdAt": "2023-03-16T10:32:35.724Z",
"updatedAt": "2023-04-07T15:05:15.046Z",
"publishedAt": "2023-03-16T10:33:04.365Z",
"TitleSupplier": "Catalogue Casio",
"GammeSupplier": "Fournitures Scolaires",
"MarqueSupplier": "Casio",
"Couleur": "#DB3938",
"Annee": "2023",
"Gamme": [
"Fournitures Scolaires",
"Fournitures de Bureau"
],
"CouleurGamme": null
}
},
{
"id": 2,
"attributes": {
"createdAt": "2023-03-17T14:16:19.454Z",
"updatedAt": "2023-04-07T15:03:31.486Z",
"publishedAt": "2023-03-17T14:16:29.716Z",
"TitleSupplier": "Catalogue Canson",
"GammeSupplier": "Fournitures Scolaires",
"MarqueSupplier": "Canson",
"Couleur": "#DB3938",
"Annee": "2023",
"Gamme": [
"Fournitures Scolaires"
],
"CouleurGamme": null
}
},
{
"id": 5,
"attributes": {
"createdAt": "2023-03-30T10:54:00.894Z",
"updatedAt": "2023-04-07T15:04:54.465Z",
"publishedAt": "2023-03-30T10:54:01.982Z",
"TitleSupplier": "Catalogue Apli-Agipa",
"GammeSupplier": "Fournitures Scolaires",
"MarqueSupplier": "Apli-Agipa",
"Couleur": "#DD4343",
"Annee": "2023",
"Gamme": [
"Fournitures Scolaires",
"Fournitures de Bureau"
],
"CouleurGamme": null
}
},
{
"id": 6,
"attributes": {
"createdAt": "2023-04-07T11:27:54.716Z",
"updatedAt": "2023-04-07T15:04:44.908Z",
"publishedAt": "2023-04-07T11:28:03.198Z",
"TitleSupplier": "Catalogue Ancor",
"GammeSupplier": "Fournitures Scolaires",
"MarqueSupplier": "Ancor",
"Couleur": "#3498A8",
"Annee": "2023",
"Gamme": [
"Fournitures Scolaires",
"Fournitures de Bureau"
],
"CouleurGamme": "#3498A8"
}
},
{
"id": 7,
"attributes": {
"createdAt": "2023-04-07T14:29:56.349Z",
"updatedAt": "2023-04-07T15:05:04.770Z",
"publishedAt": "2023-04-07T14:29:58.437Z",
"TitleSupplier": "Catalogue CEP",
"GammeSupplier": "Fournitures de Bureau",
"MarqueSupplier": "CEP",
"Couleur": "#3498A8",
"Annee": "2023",
"Gamme": [
"Fournitures Scolaires",
"Fournitures de Bureau"
],
"CouleurGamme": null
}
},
{
"id": 8,
"attributes": {
"createdAt": "2023-04-07T14:38:21.485Z",
"updatedAt": "2023-04-07T15:06:22.568Z",
"publishedAt": "2023-04-07T14:38:22.596Z",
"TitleSupplier": "Catalogue Conquérant",
"GammeSupplier": "Fournitures Scolaires",
"MarqueSupplier": "Conquérant",
"Couleur": "#3498A8",
"Annee": "2023",
"Gamme": [
"Fournitures Scolaires",
"Mobilier de Bureau"
],
"CouleurGamme": null
}
}
],
"meta": {
"pagination": {
"page": 1,
"pageSize": 25,
"pageCount": 1,
"total": 6
}
}
}
I am trying to create a request that says : Please send me all the catalogs for which the "Gamme" equals to "Mobilier de bureau".
Here is the requests i have tried so far :
http://localhost:1337/api/supplier-catalogs?filters/[Gamme][$in][0]=Mobilier de Bureau
http://localhost:1337/api/supplier-catalogs?filters/[Gamme][$in]=Mobilier de Bureau
http://localhost:1337/api/supplier-catalogs?filters/[Gamme][$eq]=Mobilier de Bureau
This was the most obvious options while i was reading the doc but all of them keep sending me all the array instead of the filtered query.
Thanks for the help,
2
Answers
Following antokhio's comment, I am posting the solution to the answer. Strapi by itself doesn't provide the data like this:
But, there is a plugin called "Multi Select" that can provide this type of JSON Answer. It was the one I was using. To be able to create the good request I used the "Contains" instead of "Eq" filter operator, like this:
Thanks,
strapi don’t have array types that look like this in response:
If this is raw strapi resopnse then you are likely using json field, and you can’t search on json field by default in strapi.
You can search on relations and components. You can’t search on DynamicZones and json fields.