原理很简单,就是使用swagger api 生成schema 然后代理请求处理api 调用

参考项目 https://github.com/rongfengliang/streamsets-graphql-api

streamsets restapi

使用的npm 包

package.json:{
"name": "restapi",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"babel-polyfill": "^6.26.0",
"compression": "^1.7.3",
"express": "^4.16.3",
"express-graphql": "^0.6.12",
"graphql": "^0.13.2",
"swagger-to-graphql": "^1.4.0"
},
"scripts": {
"start":"node app"
}
}
app.js
require('babel-polyfill');
const express = require('express');
const app = express();
const graphqlHTTP = require('express-graphql');
const graphQLSchema = require('./lib');
const compression = require('compression');
app.use(compression());// 修改为对应的server 用户以及地址
const proxyUrl = 'http://admin:admin@localhost:18630/rest';
const pathToSwaggerSchema = `${__dirname}/api/swagger.json`;
// 此处比较重要因为接口是gzip 可以进行内容协商,不使用gzip
const customHeaders = {
"accept-encoding": "identity"
};graphQLSchema(pathToSwaggerSchema, proxyUrl, customHeaders).then(schema => {
app.use('/graphql', graphqlHTTP(() => {
return {
schema,
graphiql: true
};
}));app.listen(3009, '0.0.0.0', () => {
console.info('http://localhost:3009/graphql');
});
}).catch(e => {
console.log(e);
});

效果


参考资料

https://github.com/rongfengliang/streamsets-graphql-api

streamsets rest api 转换 graphql相关推荐

  1. 给它一个REST:对您的API使用GraphQL

    by David Celis 大卫·塞利斯(David Celis) 给它一个REST:对您的API使用GraphQL (Give it a REST: use GraphQL for your AP ...

  2. 如何基于已有的 REST API 实现 GraphQL API

    这是「进击的Coder」的第 356 篇技术分享 作者:Tyler Hawkins 译者:samyu2000 校对者:PassionPenguin, k8scat 来源:掘金开发者社区 " ...

  3. 比较 REST、JSON:API 和 GraphQL

    这篇算是翻译.摘录和转写,原文:Headless CMS: REST vs JSON:API vs GraphQL,是Drupal项目的创始人Dries Buytaert和他同事一起在2019初写的, ...

  4. 人人都是 API 设计者:我对 RESTful API、GraphQL、RPC API 的思考

    有一段时间没怎么写文章了,今天提笔写一篇自己对 API 设计的思考.首先,为什么写这个话题呢?其一,我阅读了<阿里研究员谷朴:API 设计最佳实践的思考>一文后受益良多,前两天并转载了这篇 ...

  5. java moment 日期转换_关于日期:如何使用Java 8 DateTime API转换修改后的儒略日数字...

    我有一个数据库,用于存储日期和日期时间(分别为INTEGER和DOUBLE)作为已修改的儒略日数(MJD).修改后的儒略日数是自1858年11月17日午夜UTC以来连续的天数.根据定义,它们始终以UT ...

  6. 扬言要干掉 RESTful API 的 GraphQL 是什么鬼?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | toutiao.com/i6833818331 ...

  7. restful api 与 GraphQL 分析比较

    背景 REST作为一种现代网络应用非常流行的软件架构风格,自从Roy Fielding博士在2000年他的博士论文中提出来到现在已经有了20年的历史.它的简单易用性,可扩展性,伸缩性受到广大Web开发 ...

  8. 使用jquery ajax jsop gpsspg api转换坐标

    1.点击申请key:http://gpsspg.com/api/convert/latlng/ 2.jquery ajax jsop获取数据 $.ajax({ url:'http://api.gpss ...

  9. 基本操作:Go创建GraphQL API

    女主宣言 越来越多的项目中都能看到GraphQL的身影,不知道大家在项目中有没有使用过GraphQL呢?今天给大家分享一下使用Go,来创建基础GraphQL API,供大家参考学习. PS:丰富的一线 ...

最新文章

  1. python写文件读文件-python(文件读写)
  2. 事件控制寄存器(AFIO_EVCR) (2011-09-09 13:51:58)
  3. c语言程序设计慕课版答案第6章,C语言程序设计答案黄保和编第6章函数.doc
  4. idea Maven图标的使用
  5. 如何优雅的在java中统计代码块耗时
  6. 推荐12个最好的 JavaScript 图形绘制库
  7. Spring中三种编程式事务的使用
  8. VMware克隆CentOS6.4后 eth0无法初始化
  9. TeamViewer(TV)锁屏后黑屏无法远程的解决方法
  10. WebStorm中文乱码解决代码
  11. LaTeX目录格式控制
  12. Maven环境变量配置-win10
  13. 电脑技巧:Win10电脑卡顿解决小技巧,非常实用
  14. 2021-06-17
  15. imdb导mysql_IMDB电影排行爬取分析
  16. 职业规划是什么?应该怎么回答?
  17. Execution failed for task ':app:processDebugResources'. No slave process to process jobs, aborting
  18. 【docker系列】docker深入浅出之安装教程
  19. 个人项目(二)-- 自助点餐系统
  20. 【karle 笔记】无法通过Windows功能控制面板自动安装或卸载Windows Server 角色和功能。

热门文章

  1. vscode给java项目传递args[]参数
  2. TCP传输-出现差错的解决办法
  3. 51单片机的轮胎气压监测系统_SHT11传感器的温度、湿度采集系统,51单片机,Proteus仿真,C代码等...
  4. php签名墙代码,我们是一家人(签名墙)
  5. Java nio 学习笔记 相关知识
  6. 子类能否访问或覆盖父类的private方法
  7. 提高雅思听力速度必须反复练耳朵别无捷径
  8. 一行代码修改MarkdownPad2在Win10下实时预览字体太小
  9. SSIM(structural similarity index),结构相似性
  10. C++中多态性学习(上)