Generic wrapper don't work with Lists
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 25/100
Línea de trabajo
Start with the source resolver in FieldResolver.kt, named in the stack trace, and reproduce the supplied example with List<Try<Payload>>. Compare it with the working Try<Payload> case; done means nested wrappers resolve the Payload fields instead of passing the Try object to field resolution.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Generic wrappers don't work if used not as outermost wrapper, i.e. Wrapper<String> works while List<Wrapper<String>> doesn't.
My example, with Vavr Try:
package com.my.test;
import com.coxautodev.graphql.tools.GraphQLQueryResolver;
import com.coxautodev.graphql.tools.SchemaParser;
import com.coxautodev.graphql.tools.SchemaParserOptions;
import graphql.GraphQL;
import io.vavr.control.Try;
import java.util.List;
public class GenericWrapperTest {
private static final String schemaString = "type Query {\n" +
" payloads: [Payload!]!\n" +
"}\n" +
"\n" +
"type Payload {\n" +
" data: String!\n" +
"}";
private static final String query = "{\n" +
" payloads {\n" +
" data\n" +
" }\n" +
"}";
public static class Payload {
public Try<String> getData() {
return Try.success("foo");
}
}
public static class Query implements GraphQLQueryResolver {
public List<Try<Payload>> getPayloads() {
return List.of(Try.success(new Payload()));
}
}
public static void main(String[] args) {
final var tryWrapper = SchemaParserOptions.GenericWrapper.withTransformer(io.vavr.control.Try.class, 0,
Try::get, type -> type);
final var schema = SchemaParser.newParser()
.schemaString(schemaString)
.resolvers(new Query())
.options(SchemaParserOptions.newOptions()
.genericWrappers(tryWrapper)
.build())
.build()
.makeExecutableSchema();
System.out.println(GraphQL.newGraphQL(schema).build().execute(query));
}
}
Trying to run this results in
2019-03-28 14:11:35.212 [main] WARN g.e.SimpleDataFetcherExceptionHandler:23 - Exception while fetching data (/payloads[0]/data) : Expected source object to be an instance of 'com.my.test.GenericWrapperTest$Payload' but instead got 'io.vavr.control.Try$Success'
com.coxautodev.graphql.tools.ResolverError: Expected source object to be an instance of 'com.my.test.GenericWrapperTest$Payload' but instead got 'io.vavr.control.Try$Success'
at com.coxautodev.graphql.tools.FieldResolver$getSourceResolver$2.invoke(FieldResolver.kt:27)
Switching payloads to just Try<Payload> makes it run as expected - fail field resolution on failed Try and complete on successful.
- Lenguaje dominante
- Kotlin
- Estrellas
- 824
- Forks
- 175
- Merge medio
- 2 d 5 h
- PR fusionados (30 d)
- 52
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de graphql-java-kickstart/graphql-java-tools
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
graphql-java-kickstart/graphql-java-tools#893 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
graphql-java-kickstart/graphql-java-tools#889 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
graphql-java-kickstart/graphql-java-tools#886 ·
Los mantenedores suelen responder en 1 día
-
Reject directives applied at the wrong location, without a required argument or twice in 15.0.0Abiertoenhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
graphql-java-kickstart/graphql-java-tools#884 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
graphql-java-kickstart/graphql-java-tools#881 ·
Los mantenedores suelen responder en 1 día
Todos los issues de graphql-java-kickstart/graphql-java-tools
Issues similares
-
LiquidGlass / LiquidGlassContainer (iOS): padded content measured at the outer width and overflows by the paddingPosiblemente ocupada @aleclarson la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
NativeScript/NativeScript#11561 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
navikt/mock-oauth2-server#1129 ·
Los mantenedores suelen responder en 1 día
-
Expose `close` on SsrEngineAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
-
unconfirmed
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
thunderbird/thunderbird-android#11778 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
software-mansion/enriched-markdown#1042 ·
Los mantenedores suelen responder en 2 días