With Airvantage API, trying to find the connection from the Gateway back to the system. I have data that I can use to filter and get a specific Gateway object from the API, but how can I find the System associated with the Gateway. - OR is is possible to filter Systems objects by a field on the Gateway object? It appears that Gateway is a child object of Systems, but there is no foreign UID in Gateway that has the UID of the Systems in it
Find /api/v1/systems
Returns a paginated list of systems with their complete details.
It is possible to filter out the result list using criteria parameters.
Though the system creation date is not publicly exposed, the default sort order is based on the creation date.
https://doc.airvantage.net/av/reference/cloud/API/API-System-v1/
More information about filtering here
https://doc.airvantage.net/av/reference/cloud/API/
Filtering
It is also possible to ask only specific information. Instead of getting items with an unneeded record, clients can filter the fields that have to be returned.
Use the request parameter: fields, which is a string list. See types sections to see how to build string lists.
https://na.airvantage.net/api/v1/applications?fields=state,name will return applications filled up only with their unique identifier, their state, and their name.
When the fields parameter is missing, only default attributes are returned. Default attributes are dependent on the returned records.
This ticket is about Connectivity and Cloud Services , you should create it in Category Connectivity and Cloud Services
Thanks for the reply Donald.
All good information and I have put all of this to use. I should have included the proposed URL to make it more clear what I am proposing to do - I want to use a URL something like this to get the system UID and underlying Gateway data using this URL:
api/v1/systems?imei=12234567889&fields=uid, gateway
Where the imei is on the gateway, I want to get the system for that gateway.
My problem is that I do have the imei and serial number in my database - but I do not have the UID or any key to the system - and am trying to pull back the airvantage system data based on the imei on the Gateway. Is there a way to do this?
I have a work around - but not happy with it. I am currently using a call to get all the systems gateways with the associated UID of the system. I then filter out the specific gateway to get the system UID from the returned collection and then make another call to get the system based on the UID - not a good solution as it makes extra calls to build up a collection of gateways with system UID.
api/v1/systems?fields=uid, gateway,name&size=500&offset=0
Once again - thanks for your information. Your documented help for your API is pretty good, but not a lot on criteria selection help other than some basics.
Also, to learn some of the calls your making, I have been looking at how your web application makes calls to the API. It is using a different URL for systems - ui/api/ui-systems?timestamp=…
Is it safe to use those or are those subject to change since they are used by your web application? I suspect that your exposed API is set by versions and change control is handled that way. The URL 's used by the web application “could” change between versions.
Thanks -
Brent
Hi brent.vandusen
Make sure that your user/pass can find your system on Airvantage server.
Get access token with your user/pass, to get system, you can get with your system’s name.
Make a GET request, below is an example:
https://SERVER/api/v1/systems?name=YOUR_SYSTEM_NAME
SERVER = your server, ex: na.airvantage.net
YOUR_SYSTEM_NAME = the name of system on server
If there are many companies and you want to get 1 system on the company, please add more parameter “company”: https://SERVER/api/v1/systems?name=YOUR_SYSTEM_NAME&company=COMPANY_UID
Set Authorization header is Bearer access_token
Thanks - got some help, the correct way to do this is using criteria filter like this:
…/ui/api/ui-systems?gateway=imei:12345678999
note that the object (gateway) is stated, followed by an “=” sign and the the field with value seperated by a colon is used to get a system where the gateway imei is the criteria.
Just in case anyone reading this wants to know.