安装PostGraphile,并实施一个简单的GraphQL API的简单教程

PostGraphile是一种中间件,可以在PostgreSQL数据库上生成GraphQL API。有关PostGraphile的概述,请参阅以下文章。

本帖旨在说明如何安装PostGraphile并构建简单的GraphQL API的步骤。

安装PostGraphile

PostGraphile是一个在JavaScript的HTTP框架Express上实现的中间件,可以通过NPM进行安装。

# NPMでインストールする場合
npm install postgraphile
# Yarnでインストールする場合
yarn add postgraphile

安装PostgreSQL服务器

由于PostGraphile需要PostgreSQL服务器才能运行,因此需要先进行安装。在Homebrew上安装是最简单的方法。根据PostGraphile的运行要求,最新支持的官方版本是PostgreSQL v12,所以我们将安装版本12。

brew install postgresql@12

启动PostgreSQL服务器

在安装完PostgreSQL服务器后,启动它。启动命令如下:

/usr/local/opt/postgresql@12/bin/postgres -D /usr/local/var/postgresql@12

为了检查服务器连接,我们将使用psql命令执行SQL语句。

export PATH="/usr/local/opt/postgresql@12/bin:$PATH"
psql postgres:///postgres -c 'select version();'

如果出现以下结果,就可以了。

                                                      version
-------------------------------------------------------------------------------------------------------------------
 PostgreSQL 12.7 on x86_64-apple-darwin19.6.0, compiled by Apple clang version 12.0.0 (clang-1200.0.32.29), 64-bit
(1 row)

创建数据库

服务器准备完成后,我们将开始创建数据。首先,创建下一个文件database.sql。

create table if not exists authors
(
  id   serial not null primary key,
  name text   not null default ''
);

create table if not exists posts
(
  id        serial not null primary key,
  title     text   not null default '',
  body      text   not null default '',
  author_id int    not null references authors on update cascade on delete cascade
);

truncate table authors restart identity cascade;
truncate table posts restart identity cascade;

insert into authors
  (name)
  values
    ('alice'),
    ('bob'),
    ('carol');

insert into posts
  (title, body, author_id)
  values
    ('投稿1', '本文1', 1),
    ('投稿2', '本文2', 1),
    ('投稿3', '本文3', 1),
    ('投稿4', '本文4', 2),
    ('投稿5', '本文5', 2),
    ('投稿6', '本文6', 2),
    ('投稿7', '本文7', 3),
    ('投稿8', '本文8', 3),
    ('投稿9', '本文9', 3);

将此文件导入数据库并创建数据。

psql postgres:///postgres -f database.sql

我会确认一下数据是否已经输入。

psql postgres:///postgres -c 'select * from posts'
 id | title | body  | author_id
----+-------+-------+-----------
  1 | 投稿1 | 本文1 |         1
  2 | 投稿2 | 本文2 |         1
  3 | 投稿3 | 本文3 |         1
  4 | 投稿4 | 本文4 |         2
  5 | 投稿5 | 本文5 |         2
  6 | 投稿6 | 本文6 |         2
  7 | 投稿7 | 本文7 |         3
  8 | 投稿8 | 本文8 |         3
  9 | 投稿9 | 本文9 |         3
(9 rows)

启动PostGraphile

数据库准备好了,现在开始启动PostGraphile。随着PostGraphile进入实际运营阶段,启动选项会变得越来越多,所以最好从一开始就准备一个启动脚本。启动脚本的文件名可以随便取,但这里我们将它命名为bin/postgraphile.sh。

#!/usr/bin/env bash
pnpx postgraphile \
  --connection postgres:///postgres \
  --watch

这个–watch选项是为了让GraphQL模式在数据库模式发生变化时也能相应地更改,以保持一致性。

不要忘记授予执行权限。

chmod +x bin/postgraphile.sh

我們將啟動PostGraphile。

./bin/postgraphile.sh

当启动时,GraphQL API会自动构建并进入可用状态。终端会显示一些信息,其中一个是在“GraphiQL GUI/IDE”中显示的URL,该URL可以在浏览器上试用GraphQL。请打开该URL,并尝试使用GraphQL。

试着使用已构建的GraphQL

打开GraphiQL图形用户界面/集成开发环境(GUI/IDE)后,尝试编写以下查询。

query GetPosts {
  allPosts {
    nodes {
      id
      title
      body
      authorByAuthorId {
        id
        name
      }
    }
  }
}

当执行此操作时,应同时获取posts表的内容以及与posts表相关联的authors表的数据。

以上の手順を経て、PostGraphileのインストールからシンプルなGraphQL APIの構築まで完了しました。

总结

    PostGraphileをインストールし、シンプルなGraphQL APIを構築するまでの手順を説明しました。

继续

这篇帖子只是写了一点关于PostGraphile的入门知识。当实际使用时,我认为需要了解以下内容,所以接下来我会继续写下去。

    • 認証と認可のやりかた

 

    • マイグレーションのやりかた

 

    複雑な検索条件をGraphQLで使えるようにする方法
广告
将在 10 秒后关闭
bannerAds