Fetching a Single Object
If you look at the reference documentation you can see on the top level there is a node
query. This query can fetch any object which implements the Node
interface, which is almost every object in our API. The Node
interface defines just one field, the id
field, so you have to use an Inline Fragment what to do for specific types. Below is some simple examples of how this works.
In this example we'll use the Example Map Plan everyone sees when they first log into DroneDeploy. This has the ID of MapPlan:5a3d7badf014ce3db3c22391
. You can see the IDs of your own plans by listing your organizations plans, shown here.
The simplest example of using the node
query is this.
query getMap{
node(id:"MapPlan:5a3d7badf014ce3db3c22391"){
id
}
}
Since the node
query returns a Node
object, the only field available is id
. This isn't very useful, what you want is the fields specific to the MapPlan
type. For this you use an Inline Fragment: You can try this out here.
query getMap{
node(id:"MapPlan:5a3d7badf014ce3db3c22391"){
... on MapPlan{
name
location {
lat
lng
}
imageCount
status
}
}
}
Which returns the data:
{
"data": {
"node": {
"name": "Construction Example",
"location": {
"lat": 28.64861527777778,
"lng": -81.5398111111111
},
"imageCount": 438,
"status": "COMPLETE"
}
}
}
When you specify the type it allows you to query the fields for that specific type.