Keystone のインストール

Keystone を学ぶ

空のフォルダーから関係、認証、セッションデータを使用して機能するブログバックエンドを構築する方法を学び、その過程で Keystone のコアコンセプトについての洞察を得ます。

Keystone のインストール

Keystone のインストール

新しい Keystone プロジェクトのワークスペースを設定することから始めましょう。新しいフォルダを作成して初期化します。

mkdir keystone-learning
cd keystone-learning
yarn init

次に、キーストーンパッケージを追加します。

yarn add @keystone-6/core

Keystone の構成

構成のニーズを処理するために、プロジェクトのルートで `keystone.ts' ファイルを作成します。
/keystone.ts

// keystone.ts
export default {};

フォルダ構造は次のようになります。

.
├── node_modules   # Dependencies
├── keystone.ts    # Keystone config
├── package.json   # With Keystone and TypeScript as dependencies
└── yarn.lock      # Your yarn lock file

データベースの追加

このプロジェクトでは、物事をシンプルに保つために SQLite を使用しますが、Postgres を使用することもできます。SQLite の最小構成は次のようになります。
keystone.ts

import { config } from '@keystone-6/core';

export default config({
  db: {
    provider: 'sqlite',
    url: 'file:./keystone.db',
  },
  lists: {} // ...
});

これにより、データベースストレージのローカルパスが使用されます。./keystone.db

最初のリストを作成する

データベースが構成されたので、いくつかのコンテンツをデータベースに接続しましょう。
ユーザーと投稿を含む簡単なブログを作成します。
keystone.ts

import { config, list } from '@keystone-6/core';
import { allowAll } from '@keystone-6/core/access';
import { text } from '@keystone-6/core/fields';

export default config({
  db: {
    provider: 'sqlite',
    url: 'file:./keystone.db',
  },
  lists: {
    User: list({
      access: allowAll,
      fields: {
        name: text({ validation: { isRequired: true } }),
        email: text({ validation: { isRequired: true }, isIndexed: 'unique' }),
      },
    }),
  },
});

リスト名は、オブジェクト内のキーから派生します。たとえば、キーはそれぞれのリストの名前になります。このキーは、リストのデフォルトの表示名として管理 UI で使用され、Keystone の自動生成された GraphQL API で使用されます。
フィールド名は、fields オブジェクト。リストと同様に、フィールドラベルのデフォルトの管理 UI と GraphQL API で使用されます。両方のフィールドに必須であることを示す検証を追加し、電子メールは一意である必要があるため、各電子メールに 1 人のユーザーしか存在できないと宣言しました。

キーストーンの実行

Keystone を起動するために必要なものがすべて揃ったので、それを実行してみましょう。

yarn keystone dev

数秒で、ターミナルからキーストーン管理UIへのリンクが提供されます。http://localhost:3000
http://localhost:3000/users に進み、最初のユーザーを作成します。

これで、キーストーンが稼働しました。