我需要一个GraphQl在android中使用的简单示例.
我如何GraphQl在android(教程)中使用.
目前,我看不到graphql-java库中对分页的支持.它确实有一些基本的中继支持,在这里,我们可以创建一个connectionFacebook推荐的分页实现方式.
这是帮助实现这一目标的方法.但是,由于没有文档,我发现很难理解这个函数是如何工作的.有人可以打破,走下台阶,他们将采取添加分页支持,如果他们已经有一个现成的模式,它允许像基本的查询Add,delete,fetch等使用graphql-Java库?
如果我使用graphql-java,我不知道如何上传文件,有人可以给我演示吗?我将不胜感激!
参考:https : //github.com/graphql-java-kickstart/graphql-java-tools/issues/240
我在springboot中通过使用graphql-java-kickstart graphql-java-tools尝试了一下,但是没有用
@Component
public class FilesUpload implements GraphQLMutationResolver {
public Boolean testMultiFilesUpload(List<Part> parts, DataFetchingEnvironment env) {
// get file parts from DataFetchingEnvironment, the parts parameter is not used
List<Part> attchmentParts = env.getArgument("files");
System.out.println(attchmentParts);
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的架构
type Mutation {
testSingleFileUpload(file: Upload): UploadResult
}
Run Code Online (Sandbox Code Playgroud)
我希望这个解析器可以打印attchmentParts,所以我可以得到文件的一部分。
给定一个 graphql 查询
query @my (arg:1) {
foo @my (arg:2) {
bar @my (arg:3)
foobar @my (arg:4)
}
}
Run Code Online (Sandbox Code Playgroud)
和graphql服务器实现使用 graphql-spqr
query @my (arg:1) {
foo @my (arg:2) {
bar @my (arg:3)
foobar @my (arg:4)
}
}
Run Code Online (Sandbox Code Playgroud)
@GraphQLType(name="foo")
public class Foo{
@GraphQLQuery(name="bar")
public String bar;
@GraphQLQuery(name="foobar")
public String foobar;
}
Run Code Online (Sandbox Code Playgroud)
@GraphQLDirective(name="my", locations = {QUERY, FIELD} )
public class MyGraphqlDirective{
@GraphqlInputField("arg")
public int arg;
}
Run Code Online (Sandbox Code Playgroud)
我可以访问(arg:2)查询 foo(如果存在),(arg:1)如果不存在则回退。
但是,如果我想在 foo 和 foobar 字段上阅读它,我会遇到问题。
我想让它不可读,滥用@GraphqlContext每个领域。有没有更简单的方法可以在字段级别存档一些简单的逻辑(例如大写、语言环境、舍入、数字格式)。
还尝试过dataFetchingEnvironment.getSelectionSet().get().getSubField("edge/node/foo/bar").getSingleField().getDirective() …
我知道如何从 datafetcher 中的服务中检索 bean:
public class MyDataFetcher implements DataFetcher {
...
@Override
public Object get(DataFetchingEnvironment environment) {
return myService.getData();
}
}
Run Code Online (Sandbox Code Playgroud)
但是具有嵌套列表的模式应该使用 BatchedExecutionStrategy 并使用 @Batched 注释的 get() 方法创建批处理 DataFetcher(请参阅 graphql-java 文档)。
但是我把我的 getData() 调用放在哪里呢?
///// Where to put this code?
List list = myService.getData();
/////
public class MyDataFetcher implements DataFetcher {
@Batched
public Object get(DataFetchingEnvironment environment) {
return list.get(environment.getIndex()); // where to get the index?
}
}
Run Code Online (Sandbox Code Playgroud) 您可以在graphql服务器架构文件中使用片段吗?你能给我指出一个例子吗
我尝试为 GraphQL Java 添加自定义标量类型。我需要它来解析 Map 而不为它创建类型,因为它是我逻辑中的常见返回类型。
我按照说明(这里:http : //graphql-java.readthedocs.io/en/latest/scalars.html)创建了一个标量类型。
这是我的 MapScalar.java
public class MapScalar {
private static final Logger LOG = LoggerFactory.getLogger(MapScalar.class);
public static final GraphQLScalarType MAP = new GraphQLScalarType("Map", "A custom map scalar type", new Coercing() {
@Override
public Object serialize(Object dataFetcherResult) throws CoercingSerializeException {
Map map = null;
try {
map = Map.class.cast(dataFetcherResult);
} catch (ClassCastException exception) {
throw new CoercingSerializeException("Could not convert " + dataFetcherResult + " into a Map", exception);
}
return …Run Code Online (Sandbox Code Playgroud) 如何使用 Graphql SPQR 库实现 GraphQL 的订阅功能?
我在 Android 项目中使用 Apollo 客户端。我有 2 个架构文件,并将它们放在 2 个不同的目录中。
但是当我构建一个项目来通过 Apollo 生成代码时,它给了我一个错误:
ApolloGraphQL: By default, only one schema.json file is supported.
并建议我使用多个服务 构建输出:
ApolloGraphQL: By default, only one schema.json file is supported. Please use multiple services instead:
apollo {
service("search") {
sourceFolder = "/.../app/src/main/graphql/com/example/data/search"
}
service("customer") {
sourceFolder = "/.../app/src/main/graphql/com/example/data/customer"
}
}
Run Code Online (Sandbox Code Playgroud)
我还将其添加到我的build.gradle(应用程序级别)文件中,但仍然显示相同的构建错误。
请建议我如何解决这个错误
我正在寻找一种解决方案来从 spring-boot 应用程序实现 GraphQL api 调用,查询架构如下:
query {
getDetailsByRefNumber(RefNumbers: "")
{
field1,
field2,
field3
}
}
Run Code Online (Sandbox Code Playgroud)
有谁知道如何实现这个?通过以下链接之一,但没有找到任何解决方案
graphql-java ×10
graphql ×9
java ×5
android ×2
graphql-spqr ×2
apollo ×1
file-upload ×1
pagination ×1
spring-boot ×1