GraphQL Resolvers handtekeninggenerator — Numio
Genereert handtekeningen van het type solver voor een GraphQL-schema: TypeScript (standaard, typescript-resolvers), Flow (flow-resolvers) of Java (java-resolvers). De TypeScript-uitvoer bevat een Resolvers-kaart met één getypt solver-object per schematype.
Het typen van het solvers-object wordt doorgegeven aan Apollo Server of graphql-yoga, zodat ouder-, args- en retourwaarden worden gecontroleerd.
Wanneer gebruik je dit?
- Het typen van het solvers-object wordt doorgegeven aan Apollo Server of graphql-yoga, zodat ouder-, args- en retourwaarden worden gecontroleerd.
- Graphql-java DataFetcher-interfaces verkrijgen voor elk type met de JAVA Resolvers Signature-optie.
Hoe werkt het
- Plak het schema in de GraphQL Schema-editor.
- Kies TypeScript Resolvers Signature, Flow Resolvers Signature of JAVA Resolvers Signature in de vervolgkeuzelijst voor uitvoer.
- Kopieer de uitvoer; voor TypeScript annoteert u uw oplosserkaart met het gegenereerde Resolvers-type.
GraphQL-schema
type Query {
user(id: ID!): User
}
type User {
id: ID!
name: String
}Handtekeningen van de oplosser
import { GraphQLResolveInfo } from "graphql"
…
export type QueryResolvers<
ContextType = any,
ParentType extends
ResolversParentTypes["Query"] = ResolversParentTypes["Query"],
> = {
user?: Resolver<
Maybe<ResolversTypes["User"]>,
ParentType,
ContextType,
RequireFields<QueryUserArgs, "id">
>
}
export type UserResolvers<
ContextType = any,
ParentType extends
ResolversParentTypes["User"] = ResolversParentTypes["User"],
> = {
id?: Resolver<ResolversTypes["ID"], ParentType, ContextType>
name?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>
}
…Details en beperkingen
Gegenereerde typen zoals QueryResolvers hebben ContextType = any; vereiste argumenten worden getypt met RequireFields, en objectresolvers bevatten een optionele __isTypeOf.
Alleen het schema wordt gebruikt. De handtekeningen van de Resolver zijn niet afhankelijk van bewerkingen, dus de pagina heeft geen Documenteneditor.
De Java-optie voert openbare interfaces uit van DataFetcher-methoden binnen de openbare klasse Resolvers, in het pakket com.example.graphql. Alles draait in een browser Web Worker.
FAQ
Hoe stel ik mijn eigen contexttype in?
De pagina heeft geen mapper- of contextType-opties. Geef uw contexttype door als het generieke type, bijvoorbeeld Resolvers<MyContext>, aangezien elk gegenereerd resolvertype ContextType accepteert.
Waarom zijn alle oplosservelden optioneel?
typescript-resolvers markeert elke veldresolver standaard optioneel omdat GraphQL-servers terugvallen op standaardresolvers die de eigenschap van het bovenliggende object lezen.
Hoe typt de Java-optie ID-velden?
Velden van het type ID en objecttypen worden geretourneerd als DataFetcher<Object>; Tekenreeksvelden worden DataFetcher<String>.