====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 ////**/graphql/webservice**. If you have an Internet connection, you can also access a user-friendly UI to create queries at ////**/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 { 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 [[camelcase|camel case]] (ie. 'Main Pump' converted to 'mainPump'). For more information, see some [[example queries|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 [[limitations|list of limitations and differences]].