Generic wrapper don't work with Lists
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 25/100
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- Kotlin
- Estrelas
- 824
- Forks
- 175
- Merge médio
- 2d 5h
- PRs com merge (30d)
- 52
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de graphql-java-kickstart/graphql-java-tools
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
graphql-java-kickstart/graphql-java-tools#893 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 72/100
graphql-java-kickstart/graphql-java-tools#889 ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
graphql-java-kickstart/graphql-java-tools#886 ·
Mantenedores costumam responder em até 1 dia
-
Reject directives applied at the wrong location, without a required argument or twice in 15.0.0Abertaenhancement
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 72/100
graphql-java-kickstart/graphql-java-tools#884 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
graphql-java-kickstart/graphql-java-tools#881 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de graphql-java-kickstart/graphql-java-tools
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
navikt/mock-oauth2-server#1129 ·
Mantenedores costumam responder em até 1 dia
-
Expose `close` on SsrEngineAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
-
unconfirmed
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
thunderbird/thunderbird-android#11778 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
software-mansion/enriched-markdown#1042 ·
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
world-federation-of-advertisers/cross-media-measurement#4709 ·
Mantenedores costumam responder em até 1 dia