gpt4 book ai didi

java - 如何通过Java中的构建模式创建GraphQL查询字符串?

转载 作者:行者123 更新时间:2023-12-01 16:26:33 26 4
gpt4 key购买 nike

我想在Java中使用GraphQL。因此,我想创建一个客户端,该客户端应使用构建模式来构建查询,例如:

String query = CustomerBuilder().getCustomer().addSurname().addName().addAddress(CustomerDetails.address().street()).build();


方法看起来像这样:

public class Customer{

public String query;
public Customer(){
query = "getCustomer{ \n";
}

public Customer addSurname(){
this.query = this.query+ "surname\n";
return this;
}

public Customer addAddress(String[] fields){
this.query = this.query + "address {\n
for(String field: fields){
this.query = this.query+field+"\n";
}
this.query = this.query+"}\n";
return this;
}

public String end(){
return this.query = this.query + "}\n + }";
}
}

public class CustomerBuilder{

public Customer getCustomer(){
Customer cst = new Customer();
return cst;
}

public OtherTypeOfCustomer getOtherTypeOfCustomer(){
OtherTypeOfCustomer otoc...
}


我的问题是getCustomer查询可以有200多个可能的属性。并且通过构建器模式构建String会过多。如果要创建类似的查询,则必须创建200种方法才能将每个可能的字段添加到查询中。
这些方法尤其困难:
addAddress(CustomerDetails.address()。street())
使用这种方法,我还必须创建一个类CustomerDetails,在该类中我需要实现枚举/字符串。
诸如此类的工作量很大。

我尝试了类似“ addOwnField(String field)”的方法,但Builder模式的用户永远不要自己编写字符串。
所以我的问题是:是否有更好的方法可以通过GraphQL查询的生成器模式动态生成查询?

最佳答案

我不确定是否真的回答您的问题,但是据我了解,您正在研究如何生成查询字符串,以查询GraphQL服务器。因此,基本上,您正在开发Java GraphQL客户端。

对?

为什么不使用已经完成这项工作的GraphQL Java客户端呢?

您可以尝试this GraphQL plugin(Maven和Gradle)

艾蒂安

关于java - 如何通过Java中的构建模式创建GraphQL查询字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62130365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com