Syntax
Your implementation of apicalypse can stretch the language any way you feel. Use the validation tool to experiment for your own purposes.
Here is a recommendation for simple xml/json apis…
fields a,b,c;
exclude d,e,f;
where b.count >= 14 & a != n;
limit 8;
offset 2;
sort b.count desc;
search "test";fields
A comma separated array of fields.
Examples
fields id,name,description
exclude
A comma separated array of fields.
Examples
exclude name,description
where
A data filter query, similar to SQL.
You can use & and | to join comparitors (AND and OR respectively).
Operators:
=equals!=not equals>is larger than>=is larger than or equal to<is smaller than<=is smaller than or equal to[]contains all of these values![]does not contain all of these values()contains at least one of these values!()does not contain any of these values{}contains all of these values exclusively
Examples
A simple filter for entries where the id is 55.
where id = 55
Instead of specific values, you can also use null, true and false.
where enabled = true
Given the column genres contains a single number, we can filter results with parenthesis () to check if it contains any of those values. If the genre is 1, 2 or 3, it will be returned in the results.
where genres = (1,2,3)
Given the column genres is an array of numbers, we can use the in operator [] to ensure all specified values appear in the array. In the example below, if genres does not include 1 and 2 and 3, it will not be matched.
where genres = [1,2,3]
Given the column genres is an array of numbers, we can use the exclusive operator {} to ensure only the specified values appear in the array. In the example below, if genres only contains 1 and 2, it will be matched.
where genres = {1,2}
As per the example above, when only looking for a single value, you can do the following…
where genres = 1 is the same as where genres = {1}
limit
The number of items to return. This usually has a maximum limit.
limit 10
offset
The index to start returning results.
offset 25
sort
Sort results by a certain field’s values and the use asc or desc to sort by ascending or descending order.
sort date desc
search
Search for values on a column.
search description "Foo"
It is recommended to have a default column, then a column name does not need to be supplied.
search "Foo"