streamsets rest api 转换 graphql

Posted rongfengliang-荣锋亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了streamsets rest api 转换 graphql相关的知识,希望对你有一定的参考价值。

原理很简单,就是使用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的主要内容,如果未能解决你的问题,请参考以下文章

Streamsets 安装额外Stage包——CDH6.3.0包报错REST API call error: java.io.EOFException

Streamsets爬取CSDN博客之星统计数据并入库

关于streamsets的相关问题总结

Streamsets官方文档--Pipeline的概念和设计

如何转换 REST API 响应

Spring MVC 转换 Spring Rest Api