ARDI GraphQL

The GraphQL addin provides partial GraphQL support for ARDI servers.

What is GraphQL?

GraphQL is an open standard for accessing data from APIs.

See the https://graphql.org/ website for more information.

Accessing GraphQL

Once you've installed and enabled the addon, you can access the GraphQL endpoint at <yourserveraddress>/graphql/webservice.

If you have an Internet connection, you can also access a user-friendly UI to create queries at <yourserveraddress>/graphql.

Example Queries

GraphQL queries are written in a format that looks like JSON, but is not quite the same. GraphQL responses are all standard JSON format.

Queries are usually in the form of…

query <queryname> {
   asset(name: "Main Pump") {
       id
       name
       airPressure
       voltage
       current
   }
}

The query above asks for the id, name, Air Pressure, voltage and current for the 'Main Pump'

Because no spaces or symbols are allowed in names, everything will be converted into camel case (ie. 'Main Pump' converted to 'mainPump').

For more information, see some example queries.

Why Partial Support?

Although it's a very flexible query language, GraphQL is still fundamentally based on the concept of tables - that every object of a similar type will have similar data.

Outside databases that heavily use types, ARDI assets aren't as strictly structured.

It also has the common issue of not working particularly well with deeply nested hierarchies or relationship structures.

Because of some of these fundamental differences in how GraphQL and ARDI work, we've had to create our GraphQL parser ourselves, and have not implemented the full set of functions.

See our list of limitations and differences.