在本文中,我将带你了解如何使用 GraphiQL 来辅助 GraphQL 的开发。 什么是 GraphQL? 在我们谈论 GraphiQL 之前,让我们先谈谈 GraphQL。 什么是 GraphiQL? 同样,你可以将 GraphiQL 视为 Postman 或 Insomnia。 因为 GraphiQL 是 GraphQL 集成开发环境 (IDE)。 我们希望能够以图形方式看到正在发生的事情,因为我们给 graphiql 一个“true”值。 现在,在项目的文件夹中创建一个文件夹。 如果一切都正确完成,你应该能够在 GraphiQL 界面中运行你的 GraphQL。
GraphiQL GraphiQL是整个GraphQL优势的重要一环,然而默认的GraphiQL不允许配置graphql服务的地址(就是点击GraphiQL上的运行按钮去请求数据的地址),要弄明白这一点很容易 ,找到graphiql-spring-boot-autoconfigure包,里面有graphiql.html文件,请求数据的endpoint是硬编码的: function graphQLFetcher catch (error) { return responseBody; } }); } 显然这不能满足项目工程化的要求,解决这个问题有两种比较简单的方式: 把graphiql.html 文件复制到项目中,用一个Controller提供GraphiQL服务,这样就可以去掉GraphiQL的相关依赖了 利用官方的GraphiQL的React组件自己搭建GraphiQL页面,这样定制化更方便
[54] GraphiQL & the GraphQL LSP Reference Ecosystem for building browser & IDE tools. 最新发布版本:[graphql/graphiql] Release @graphiql/plugin-explorer@0.1.6[55] - @graphiql/plugin-explorer@0.1.6 [56] 更新内容: @graphiql/plugin-explorer@0.1.6[57] Repository: graphql/graphiql[58] · Tag: @graphiql/plugin-explorer /graphiql/releases/tag/%40graphiql/plugin-explorer%400.1.6 [58] graphql/graphiql: https://github.com/ graphql/graphiql [59] @graphiql/plugin-explorer@0.1.6: https://github.com/graphql/graphiql/tree/%40graphiql
Github使用了graphiql,graphiql是一个浏览器内的IDE,它可以用来浏览和查询GraphQL。 graphiql的网址是:https://github.com/graphql/graphiql。 下一篇文章,我也会在.NET项目里安装这个graphiql。 第一个查询 打开Github的GraphiQL以后,自动加载了一个查询语句,我们点击运行按钮,右侧就会返回查询的结果: ? GraphiQL的智能提示 GraphiQL是具有智能提示的功能的。当你输入一个字母之后,就是这种效果: ? 如果你什么都不输入,还想知道有哪些字段,那么就按Alt+空格: ? 查询Schema 除了看文档之外,你可以直接查询schema,这点在我们不使用graphiql的时候尤其有用。 ?
配置 graphiql -- graphql 调试工具 这个地方,也是各种坑。第一反应就是去看官方文档,但是文档过时太多,坑太深。 如果你非要看的话,我友情提醒一句,需要在父目录执行的是 yarn && npm run build 或者你干脆自己新建一个自己的示例: yarn add graphiql yarn add graphql 如果看不懂我上面在说什么,说明你很可能不是一个 Web 前端,那就直接用一个基于 graphiql 开发的 APP 吧: https://github.com/skevy/graphiql-app。 如果能和上文的 graphiql 的 App 聚合在一起,就非常完美了。 如果直接向看下效果,可以直接访问在线Demo: https://apis.guru/graphql-voyager/。
启用 GraphiQL UI 为了调试 GraphQL 请求,Spring Boot GraphQL 提供了一个已经内置的 GraphiQL UI,我们可以使用它来测试我们的 API。 spring: graphql: graphiql: enabled: true 有了这个,就可以访问 /graphiql 路径上的 UI .它将自动扫描资源目录中的模型,以帮助开发人员验证 使用 GraphIQL 查询数据 我们可以在路径 /graphiql 访问 GraphiQL 接口。 在查询数据之前,让我们先使用 mutation 操作存储一些数据。 GraphiQL 在内部对端点 /graphql 进行 POST 调用以发送查询。因此也可以使用 curl 命令执行此操作。
clone https://github.com/assetnote/batchql.git 工具使用 信息枚举 ❯ python batch.py -e http://re.local:5000/graphiql admin@example.com","password":"#VARIABLE#","rememberMe":false}}' --size 100 -e http://re.local:5000/graphiql password":"#VARIABLE#","rememberMe":false}} 4、指定Batch大小: --size 100 5、指定目标节点: -e http://re.local:5000/graphiql
app.use( '/graphql', // 将 GraphQL 服务器映射到 /graphql graphqlHTTP({ schema, rootValue: root, graphiql : true, // 启用 GraphQL 的 Web 客户端 GraphiQL。 GraphQL API server at http://localhost:4000/graphql');运行graphql服务器npx ts-node server在浏览器中访问以下 URL,即可访问 GraphiQL ; },};const app = express();app.use( '/graphql', graphqlHTTP({ schema, rootValue: root, graphiql ; },};const app = express();app.use( '/graphql', graphqlHTTP({ schema, rootValue: root, graphiql
your development server - The field might be accessible in another subfield, please try your query in GraphiQL and use the GraphiQL explorer to see which fields you can query and what shape they have - You want
常见的GraphQL路径如下:/graphql/graphiql/v1/graphql/v2/graphql/v3/graphql/v1/graphiql/v2/graphiql/v3/graphiql /api/graphql/api/graphiql/graphql/api/graphql/console/console/playground/gql/query/graphql-devtools/graphql-explorer 渗透测试脚本引擎,https://github.com/swisskyrepo/GraphQLmapgraphiql:基于浏览器的GraphQL IDE工具,https://github.com/graphql/graphiql
, ); map.insert( "GRAPHIQL_PATH", dotenv::var("GRAPHIQL_PATH" ).expect("Expected GRAPHIQL_PATH to be set in env!") ").unwrap()).get(graphiql); app.listen(format! , ); map.insert( "GRAPHIQL_PATH", dotenv::var("GRAPHIQL_PATH" ).expect("Expected GRAPHIQL_PATH to be set in env!")
; Ok(resp.into()) } pub async fn graphiql(_: Request<State>) -> tide::Result { let mut resp new("graphql"))); resp.set_content_type(mime::HTML); Ok(resp.into()) } 上面的示例代码中,函数 graphql 和 graphiql /backend/src 目录,迭代 main.rs 文件: mod gql; use crate::gql::{build_schema, graphiql, graphql}; #[async_std mut app = tide::with_state(app_state); // 路由配置 app.at("graphql").post(graphql); app.at("graphiql ").get(graphiql); app.listen(format!
GraphiQL Spring Boot 启动器包含一个GraphiQL页面,默认情况下该页面在“/graphiql”中公开。 您可以按如下方式配置: spring.graphql.graphiql.enabled=true spring.graphql.graphiql.path=/graphiql 指标 当启动器spring-boot-starter-actuator
我们还应该启用 GraphiQL——一个用于编写、验证和测试 GraphQL 查询的浏览器内 IDE,以及 GraphQL Java 工具库,它包含用于创建查询和突变的有用组件。 您可以使用 path 下提供的 GraphiQL 工具在您的应用程序中轻松测试它/graphiql。 负责执行变异方法的 bean 需要实现GraphQLMutationResolver. 我们已经使用 GraphiQL 测试了一些查询。但我们的主要目标是创建一些其他微服务,employee-service通过 GraphQL API与应用程序通信。 } 现在,我们可以使用 GraphiQL 使用必填字段列表调用我们的测试查询。 department-service默认情况下,应用程序在端口 8091 下可用,因此我们可以使用 address 调用它http://localhost:8091/graphiql。
}; var app = express(); app.use('/graphql', graphqlHTTP({ schema: schema, rootValue: root, graphiql graphqlHTTP 的第三个参数 graphiql: graphhiql是GraphQL IDE的参考实现,可以看作是为GraphQL构建的浏览器上IDE工具。 测试 启动服务 node server.js 使用浏览器访问 http://localhost:4000/graphql,可以看到 GraphiQL IDE 的界面,输入 query { hello
UserGraphQLQueryResolver详解 使用 graphiql 请求服务器 graphiql 可以帮助我们方便的向 graphql 服务端发起请求,使用也十分简单,引入相关依赖即可。 <dependency> <groupId>com.graphql-java-kickstart</groupId> <artifactId>graphiql-spring-boot-starter version> <scope>runtime</scope> </dependency> 好,让我们启动 Spring Boot 应用,访问 http://localhost:8080/graphiql 使用graphiql发起请求 在 https://github.com/graphql-java-kickstart/graphql-spring-boot 的帮助下,实现一个 graphql 服务就是这么的简单
首先需要在服务端提供GraphQL服务,这里可以查看现有的实现了GraphQL的平台,关于如何搭建GraphQL的服务,请查看GraphQL(二):GraphQL服务搭建 同时,GraphQL提供了强大的开发者工具GraphiQL RESTful风格接口完成数据交互时会遇到的问题: 多端点,每个API都有自己的路径需要管理 image API数量庞大,新人自学习困难 GraphQL通过图的方式来组织模型,结合GraphiQL 我们在定义字段时,一并写上description,通过GraphiQL可以实时查看: type School { id: ID! 学校地址 schoolAddress: String # 学校包含的老师 teachers: [Teacher] # 校长 master: String } GraphiQL
: true })) app.listen(3000) graphqlHTTP 中的三个参数介绍: schema:定义的查询语句和类型 rootValue:处理对应查询的处理器 graphiql:是否开启调试窗口 ,开发阶段开启,生产阶段关闭 接下来运行项目,在命令行中执行 node hello.js,这里可以在 graphiql 上做调试,打开地址 localhost:3000/graphiql 就可以愉快的查询了 另外我们可以在 graphiql 界面右侧打开 Docs 查看我们定义的所有字段和描述信息。 ? ? , input: HeroInput): Hero } # 需要至少定义一个 Query 不要GraphiQL会不显示查询 type Query { hero: , input: HeroInput): Hero } # 需要至少定义一个 Query 不要GraphiQL会不显示查询 type Query { hero:
: true })) app.listen(3000) graphqlHTTP 中的三个参数介绍: schema:定义的查询语句和类型 rootValue:处理对应查询的处理器 graphiql:是否开启调试窗口 ,开发阶段开启,生产阶段关闭 接下来运行项目,在命令行中执行 node hello.js,这里可以在 graphiql 上做调试,打开地址 localhost:3000/graphiql 就可以愉快的查询了 另外我们可以在 graphiql 界面右侧打开 Docs 查看我们定义的所有字段和描述信息。 , input: HeroInput): Hero } # 需要至少定义一个 Query 不要GraphiQL会不显示查询 type Query { hero: , input: HeroInput): Hero } # 需要至少定义一个 Query 不要GraphiQL会不显示查询 type Query { hero:
var app = express(); app.use('/graphql', graphqlHTTP({ schema: schema, rootValue: root, graphiql API server at localhost:4000/graphql'); 放到 index.js 然后 node 跑起来即可 浏览器直接打开 localhost:4000/graphql 就是 graphiql