Ariadne queries

From wikinotes

Fields with Params

import ariadne

TASKS = [
    {"id": "1", "name": "clean kitchen"},
    {"id": "2", "name": "clean bathroom"},
]

type_defs = ariadne.gql("""
    type Query {
        task(id: ID!): Task!
    }

    type Task {
        id: ID!
        name: String!
    }
""")

query = ariadne.QueryType()

@query.field("task")
def resolve_task(parent, info, id):   # <-- 'id' param assigned if present in query
    for task in TASKS:
        if task['id'] == id:
            return task
{
  task(id: "2") {
    name
    id
  }
}

GraphQL field params are passed as keyword arguments to the function bound to the field.