IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> java调用Graphql接口 -> 正文阅读

[开发工具]java调用Graphql接口

java调用Graphql接口

最近项目调用第三方的接口,但是第三方接口是GraphQL,刚开始看见这个一脸懵逼,竟然是自己没有用过的语言,这时候就开始去网上找资料学习一下。

1.什么是GraphQL?

GraphQL 是一种针对 Graph(图状数据)进行查询特别有优势的 Query Language(查询语言),所以叫做 GraphQL。它跟 SQL 的关系是共用 QL 后缀,就好像「汉语」和「英语」共用后缀一样,但他们本质上是不同的语言。

GraphQL 跟用作存储的 NoSQL 没有必然联系,虽然 GraphQL 背后的实际存储可以选择 NoSQL 类型的数据库,但也可以用 SQL 类型的数据库,或者任意其它存储方式(例如文本文件、存内存里等等)。GraphQL 最大的优势是查询图状数据。GraphQL 是 Facebook 发明的。

  1. java什么调用Graphql接口?

?首先需要引入jar到自己项目的pom文件里面

<dependency>

????<groupId>org.mountcloud</groupId>

????<artifactId>graphql-client</artifactId>

????<version>1.2</version>

</dependency>

在用java实现调用Graphql时,我们首先可以尝试用postman工具调一下第三方接口,看看是不是可以调通,调用结果如下:

?

?

注:设置请求的头部

注:上面三个记得要注意,2和3就是请求参数,下面的就是返回结果,说明是可以调成功。

最后我们用java代码实现调用如下:

import com.alibaba.fastjson.JSON;

import lombok.extern.slf4j.Slf4j;

import org.mountcloud.graphql.GraphqlClient;

import org.mountcloud.graphql.request.mutation.DefaultGraphqlMutation;

import org.mountcloud.graphql.request.mutation.GraphqlMutation;

import org.mountcloud.graphql.request.result.ResultAttributtes;

import org.mountcloud.graphql.response.GraphqlResponse;

import java.io.IOException;

import java.util.HashMap;

import java.util.Map;

@Slf4j

public class GraphqlTestDemo {

????public static void main(String[] args) {

????????String token = "**********";

????????String authorizationToken = "eyJhbGciOiJSU";

????????String url = "https://api.staging.transit.dev/graphql/transact";

????????GraphqlClient graphqlClient = GraphqlClient.buildGraphqlClient(url);

????????Map<String,String> httpHeaders = new HashMap<>();

????????httpHeaders.put("content-type", "application/json");

????????httpHeaders.put("authorization", "Bearer "+authorizationToken);

????????graphqlClient.setHttpHeaders(httpHeaders);

????????//创建mutaion

????????GraphqlMutation mutation = new DefaultGraphqlMutation("transact");

????????//创建参数对象

????????Map<String,Object> input = new HashMap<String,Object>();

????????input.put("ref", "test/REDEEMED");

????????input.put("dry", true);

????????input.put("locationID", "35872673");

????????input.put("hostID", "865650030605402");

????????input.put("token", token);

????????//添加变量名

????????mutation.getRequestParameter().addObjectParameter("input", input);

????????//设置获取返回结果参数

????????mutation.addResultAttributes("ref");

????????ResultAttributtes resultAttributtes = new ResultAttributtes("voucher");

????????resultAttributtes.addResultAttributes("status","transactionID", "transactionTimestamp", "value");

????????mutation.addResultAttributes(resultAttributtes);

????????log.info("---------请求参数-----------mutation:{}", mutation.toString());

????????GraphqlResponse response = null;

????????try {

????????????response = graphqlClient.doMutation(mutation);

????????} catch (IOException e) {

????????????e.printStackTrace();

????????}

????????Map data = response.getData();

????????log.info("---------返回结果---------data:{}", JSON.toJSONString(data));

????}

}

注:主要就是postman图片中2的请求参数的组装!!!

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:45:36  更:2022-03-08 22:47:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/19 11:25:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码