Skip to content

GraphQL resolvers

resolve_query creates a Strawberry field with a model-specific GraphQL input type. The generated resolver parses filters and sorts before calling your handler.

@resolve_query(db=DBType.SQL)
def users(self, query: SQLQuery) -> list[User]:
    return sql_connection.execute(query.statement, query.parameters)
@resolve_query(db=DBType.MONGO_DB)
def users(self, query: MongoDBQuery) -> list[User]:
    cursor = collection.find(query.filters)
    return list(cursor.sort(query.sorts)) if query.sorts else list(cursor)
@resolve_query(db=DBType.NONE)
def users(self, query: QueryExpression) -> list[User]:
    return repository.fetch(query)

Nested Pydantic models are generated as nested Strawberry output types. They are returned as fields, but nested objects are not exposed as scalar filter inputs.