如何添加端点到graphql客户端?



我想创建一个客户端来使用GraphQL端点。

我已经尝试了GraphQL提供的示例代码Java,它看起来这样的:

GraphQLObjectType fooType = newObject()
.name("Foo")
.field(newFieldDefinition()
.name("bar")
.type(GraphQLString))
.build();
GraphQLSchema schema = GraphQLSchema.newSchema()
.query(fooType)
.build();
GraphQL graphQL = GraphQL.newGraphQL(schema)
.build();
ExecutionInput executionInput = ExecutionInput.newExecutionInput()
.query("query { hero { name } }")
.build();
ExecutionResult executionResult = graphQL.execute(executionInput);
Object data = executionResult.getData();
List<GraphQLError> errors = executionResult.getErrors();
我不知道这是不是最好的办法。我使用AWS AppSync作为GraphQL服务器。我如何更新我的代码,使其引用AWS端点?

我建议使用Apollo客户机。请参阅这个入门指南。

您需要做两件事才能使用AWS AppSync的阿波罗客户端:

  1. 提供端点的URL;
  2. 在请求中添加一个授权/API密钥头。

例子:

String url = "https://xxx.appsync-api.us-east-1.amazonaws.com/graphql";
OkHttpClient okhttp = new OkHttpClient.Builder()
.addInterceptor(chain -> {
Request requestWithAuth = chain.request()
.newBuilder()
.addHeader("X-API-Key", "da2-alphanum-string-here")
.build();
chain.proceed(requestWithAuth);
})
.build();
ApolloClient apollo = ApolloClient.builder()
.serverUrl(url)
.okHttpClient(okhttp)
.build();

最新更新