如何使用Java代码调用GraphQL查询/变异

时间:2019-12-30 04:42:59

标签: java graphql

我知道我们可以使用 / graphiql 端点来测试创建或部署的GraphQL API。

enter image description here

  1. 我需要使用Java代码使用已经存在的GraphQL API。我该怎么办。
  2. 如何使用类似 postman 的应用程序测试GraphQL端点,或者甚至有可能。

2 个答案:

答案 0 :(得分:0)

在后端代码中使用graphql API,将需要多个步骤,例如。

  1. 定义架构
  2. 安装依赖项
  3. 定义graphql端点
import com.coxautodev.graphql.tools.SchemaParser;
import javax.servlet.annotation.WebServlet;
import graphql.servlet.SimpleGraphQLServlet;


@WebServlet(urlPatterns = "/graphql")
public class GraphQLEndpoint extends SimpleGraphQLServlet {

    public GraphQLEndpoint() {
        super(SchemaParser.newParser()
                .file("schema.graphqls") //parse the schema file created earlier
                .build()
                .makeExecutableSchema());
    }
}

以下是执行此操作的详细指南:Graphql-java-backend-implementation

是的,可以使用邮递员发送请求。您可以简单地在主体中复制架构。 Doing GraphQL request using Postman

答案 1 :(得分:0)

根据您的情况,使用Spring RestTemplate可能是最简单的事情。

public class Person {
    @JsonProperty("query")
    public final String query = "mutation($name:String, $gender:String, $age:Int) { updateDetails (name: $name, gender: $gender, age: $age) }";
    @JsonProperty("variables")
    public final Map<String, String> variables;
...
}
...
(new RestTemplate()).postForEntity("http://example.com/graphql", new Person("David", "male", 12));

通过避免使用Spring并使用HttpClient,并使用StringBuilder构建相同的JSON文档,可以变得更加简单。

或者Apollo Andoid可以为您自动生成客户端代码。