Executing a query that only contains a fragment spread causes the root value to be null.
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 45/100
Piste de recherche
Commencez par reproduire la requête composée uniquement du fragment avec FSharp.Data.GraphQL 2.2.1 et examinez l’argument root du resolver organizationField pendant l’exécution. Comparez-la avec les cas du fragment inline et de la requête avec un champ supplémentaire ; c’est terminé lorsque les trois formes fournissent le même root non nul et que le champ organizations se résout sans erreur de null.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Description
If you construct a query that only contains a spread fragment, it appears that the resolver's root argument becomes null. This only happens whenever there are no other fields being queried, only the fragment.
Repro steps
The following is an example of such a query:
fragment SidebarFragment on Query {
organizations(first: 10) {
edges {
node {
name
id
}
}
}
}
query MainLayoutMainQuery {
...SidebarFragment
}
The following is the resolver for the organizations field:
let organizationField (organizationType: OutputDef<Organization>) =
Define.AsyncField(
"organization",
Nullable organizationType,
"Gets one of the user's organizations by id",
[ Define.Input("id", StringType) ],
fun ctx (root: Root) ->
let globalId = ctx.Arg<string> "id"
match globalId with
| GlobalId("Organization", id) ->
let repository = buildOrganizationRepository root.Db root.UserId
repository.Fetch(Guid(id))
| _ -> raise (GQLMessageException "Invalid organization ID received.")
)
And the root is a simple record value:
type Root = {
Db: DbCtx
UserId: string
}
If the query is executed against this setup, then the root argument of the resolver becomes null, even when that is not a valid value
for the field. This issue completely goes away whenever there is either another field in the main query, as in the following:
fragment SidebarFragment on Query {
organizations(first: 10) {
edges {
node {
name
id
}
}
}
}
query MainLayoutMainQuery {
node(id: "") {
id
}
...SidebarFragment
}
Or the fragment is not used, and instead is sent inline as normal:
query MainLayoutMainQuery {
organizations(first: 10) {
edges {
node {
name
id
}
}
}
}
Expected behavior
The organizations field should be the same for all of the previous queries, and no null error should occur.
Actual behavior
The root argument is null.
Known workarounds
Add a dummy field to the main query, as that somehow makes the root field not be null.
Related information
- Arch linux 6.10.5
- FSharp.Data.GraphQL 2.2.1
- .NET Core 8
- Langage dominant
- F#
- Étoiles
- 406
- Forks
- 74
- Merge moyen
- 15 h 59 min
- PR mergées (30 j)
- 20
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de fsprojects/FSharp.Data.GraphQL
-
Introspection emits JSON-serialized value as `defaultValue` instead of a GraphQL literal (breaks enum defaults)Peut-être pris @xperiandri l’a pris il y a 8 jours. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 65/100
fsprojects/FSharp.Data.GraphQL#623 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 52/100
fsprojects/FSharp.Data.GraphQL#613 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
fsprojects/FSharp.Data.GraphQL#596 ·
Les mainteneurs répondent en général sous 1 jour
-
`documentId` has different values for the same query contentPeut-être pris @xperiandri l’a pris il y a 146 jours. Ouverte
fsprojects/FSharp.Data.GraphQL#573 · 1 réaction · 2 personnes assignées ·
Les mainteneurs répondent en général sous 1 jour
-
FR: Suave packagePeut-être pris @xperiandri l’a pris il y a 147 jours. Ouverte
fsprojects/FSharp.Data.GraphQL#566 · 1 commentaire · 1 réaction · 2 personnes assignées ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de fsprojects/FSharp.Data.GraphQL
Issues similaires
-
Claiming namespace `jft63`Ouvertenamespace operations
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
EclipseFdn/open-vsx.org#14043 ·
Les mainteneurs répondent en général sous 1 jour
-
bug: directory index route root priority is overwritten when wildcard is falsePeut-être pris @TalhaHunter101 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
fastify/fastify-static#617 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
apple/swift-nio-imap#862 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 73/100
Les mainteneurs répondent en général sous 1 jour