前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GraphQL入门

GraphQL入门

作者头像
kongxx
发布2024-03-13 08:26:33
680
发布2024-03-13 08:26:33
举报

GraphQL 是什么

GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

GraphQL Hello World

这里我门以 Node.js 的 express 框架为例,看一下 Hello World 的 GraphQL 版本。

首先创建一个 Node.js 的工程

代码语言:javascript
复制
mkdir myapp
cd myapp
npm init (一路回车)

安装依赖包

代码语言:javascript
复制
npm install express express-graphql graphql

应用启动文件

创建一个应用的启动文件,比如 server.js,内容如下:

代码语言:javascript
复制
var express = require('express');
var { graphqlHTTP } = require('express-graphql');
var { buildSchema } = require('graphql');
 
var schema = buildSchema(`
  type Query {
    hello: String
  }
`);

var root = { hello: () => 'Hello World!' };
 
var app = express();
app.use('/graphql', graphqlHTTP({
  schema: schema,
  rootValue: root,
  graphiql: true,
}));
app.listen(4000, () => console.log('Now browse to localhost:4000/graphql'));

这里几个主要变量说一下:

  1. schema: GraphQL 中定义的所有接口、类型和操作等,这里只定义了一个 hello 的查询操作。
  2. root: GraphQL 在服务端的处理器集合,这里只有一个查询的处理器,用来处理 schema 中定义的查询操作。
  3. graphqlHTTP 的第三个参数 graphiql: graphhiql是GraphQL IDE的参考实现,可以看作是为GraphQL构建的浏览器上IDE工具。

测试

启动服务

代码语言:javascript
复制
node server.js

使用浏览器访问 http://localhost:4000/graphql,可以看到 GraphiQL IDE 的界面,输入

代码语言:javascript
复制
query {
  hello
}

可以看到下面的查询结果

代码语言:javascript
复制
{
  "data": {
    "hello": "Hello world!"
  }
}

或者也可以使用 curl 命令查询

代码语言:javascript
复制
curl -X POST http://localhost:4000/graphql -d 'query=query {
  hello
}'

{"data":{"hello":"Hello world!"}}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • GraphQL 是什么
  • GraphQL Hello World
    • 首先创建一个 Node.js 的工程
      • 安装依赖包
        • 应用启动文件
          • 测试
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档