microsoft / microsoft/cppgraphqlgen
Fragments should generate their own structs
Personne n'a encore pris cette issue.
- Langage dominant
- C++
- Étoiles
- 350
- Forks
- 56
- Merge moyen
- 2 h 33 min
- PR mergées (30 j)
- 3
Description
When generating a client using fragments and lots of similar queries that use the same fragment it leads to lots of the same structs being generated.
Ideally there would be a seperate Fragments struct that contains the defined fragments.
I.e the following queries would both share the same response structs as they use the same fragment:
fragment LoadInfo on Load {
loadId
jobContainerId
name
loadPlanStatus
journey {
journeyId
}
}
query loadById($load: Int!) {
loadByID(loadId: $load) {
...LoadInfo
}
}
query loadBySupplier($supplier: String!, $after: LocalDateTime!) {
loadsBySupplierId(supplierCode: $supplier, after: $after) {
...LoadInfo
}
}
Not sure how feasible that is, but I think something similar is done for input types and enums?
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
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.
Piste de recherche
Aucun fichier, test ou point d’entrée n’est nommé. Commencez par retracer la gestion actuelle des types d’entrée et des enums par le générateur, puis définissez comment les structs appartenant aux fragments sont générées et réutilisées ; le travail est terminé lorsque les deux requêtes d’exemple partagent les structs de réponse du fragment sans définitions en double.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cpp, graphql
- Domaine
- backend-api-design, tooling
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100