We are announcing the future upgrade for filter expression format in various REST API calls. The most important are the GET /devices/XXX/messages and GET /calcs/XXX/devices/YYY/intervals API calls. So all REST API calls where you can specify filter expression will be affected.
Once the whole upgrade is finished it will be possible to use extended expressions in requests with math functions, arithmetic operations, brackets for operations priority and so on. But so far we made simple compatibility mode that you need to adjust your requests to.
List of changes to the filters format
- textual fields will require quotes. For example filter="email=123@gmail.com" should be upgraded to filter="email='123@gmail.com'".
- instead of | or & separators please use || or &&. For example filter="field1=1|field1=100" should be upgraded to filter="field1=1||field1=100".
- parameter existence check in form filter="param1" or filter="param1!=" will stop operating. Please use filter="param1!=''" instead (except the case when param1 may have empty string value).
If some parameter does not exists in the message the whole expression will be marked as invalid and thus message will be skipped. In that case you may already precede parameter name with dollar sign: filter="$param=1 || $param2 = 2"
There will be few stages for this update.
Stage 1: effective from April 26th
We will add warnings response to REST API requests that are still using old scheme. So the ordinary response from request will be:
{"result": [...], "warnings":[{"reason":"You are using REST API call format that will soon be deprecated"}]}
In most of the systems this will not change any kind of processing, because the whole result located under "result" nested object is unaffected.
Stage 2: effective from May 17th
We will switch filters processing in API calls to a new expressions implementation. In case you will be still using older format your requests will return error with corresponding information or even do not operate as expected in some cases. From that moment you will have the ability to use all the power of new expressions engine.
In between stages we are actively monitoring API usage and will personally inform users that will be affected by this change, especially if we already have a non-empty communication chat between flespi support and this user. But nevertheless please do the upgrade of your code on your own as soon as possible and be prepared for the possible changes in requests processing on May 17th.