This repository was archived by the owner on Nov 8, 2024. It is now read-only.
Description Here is an example url (I tried to describe it with with both OpenAPI and API BluePrint but failed):
http://example.com/api/items?filter[0][field]=value1&filter[0][type]=gte&filter[0][x]=490&filter[1][field]=value2&filter[1][type]=lte&filter[1][x]=200&filter[2][field]=value3&filter[2][type]=between&filter[2][x]=100&filter[2][y]=300
Some additional notes: we have an array of filters that should accept some values. The parameters can be represented in JSON like this:
[
{
"field" : " value1" ,
"type" : " gte" ,
"x" : 490
},
{
"field" : " value2" ,
"type" : " lte" ,
"x" : 200
},
{
"field" : " value3" ,
"type" : " between" ,
"x" : 100 ,
"y" : 300
}
]
With this type of query parameters indexing we get natural arrays in PHP without any additional "movements" using something like this:
parse_str ('filter[0][field]=value1&filter[0][type]=gte&filter[0][x]=490&filter[1][field]=value2&filter[1][type]=lte&filter[1][x]=200&filter[2][field]=value3&filter[2][type]=between&filter[2][x]=100&filter[2][y]=300 ' , $ result );
var_dump ($ result );
/** output:
array(1) {
["filter"]=>
array(3) {
[0]=>
array(3) {
["field"]=>
string(6) "value1"
["type"]=>
string(3) "gte"
["x"]=>
string(3) "490"
}
[1]=>
array(3) {
["field"]=>
string(6) "value2"
["type"]=>
string(3) "lte"
["x"]=>
string(3) "200"
}
[2]=>
array(4) {
["field"]=>
string(6) "value3"
["type"]=>
string(7) "between"
["x"]=>
string(3) "100"
["y"]=>
string(3) "300"
}
}
}
**/
So, this is not something exotic, this is a normal php-style query uri.