graphql-python / graphql-python/gql
Automatically infer Type of Queries
- Langage dominant
- Python
- Étoiles
- 1.7k
- Forks
- 195
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
For the following query on https://countries.trevorblades.com/
```
query GetCountries {
countries {
name
}
}
```
The snippet to generate this dynamically using gql is:
```
dsl_gql(
GetCountries=DSLQuery(
ds.Query.countries.select(ds.Country.name)
)
)
```
Notice that in the raw graphql I just mentioned `name` instead of `Country.name`. As the schema already lays out the return types of all queries, graphql is able to figure it out automatically.
```
""" schema.graphql """
type Query {
...
countries(filter: CountryFilterInput): [Country!]!
...
}
type Country {
...
name: String!
...
}
```
Would it be possible to modify `.select()` to auto-select objects of the query type by their name?
Maybe something like:
```
dsl_gql(
GetCountries=DSLQuery(
ds.Query.countries.select("name", DSLAutoSelectable("continent").select("name"))
)
)
```
Resulting graphql
```
query GetCountries {
countries {
name
continent {
name
}
}
}
```
Note: The sgqlc library has a `__fields__()` method which can get the *immediate* scalars by name: https://github.com/profusion/sgqlc/blob/465a5e800f8b408ceafe25cde45ee0bde4912482/sgqlc/operation/__init__.py#L390
Guide de contribution
Ouvrir le guide de contribution
Évaluation
Cette issue n'a pas encore été évaluée.