クイックスタート - GraphQL
Skeet フレームワークを使ってプロジェクトを迅速に開始するためのガイドです。
Skeet CLI のインストール
Skeet CLI は Skeet フレームワークを効率的に利用するためのコマンドラインツールです。以下のコマンドでインストールできます。 すでに npm がインストールされている場合は、以下のコマンドでインストールできます。
$ npm i -g @skeet-framework/cli
npm がインストールされていない場合は、以下のコマンドでインストールできます。 (このコマンドは、nodenv, node, npm, @skeet-framework/cli をインストールし .profile/.zshrc を編集します。)
$ sh -c "$(curl -sSfL https://storage.googleapis.com/skeet-assets/resources/v1.0.2-install)"
Docker のインストール
Skeet は、Docker を利用してローカルでの開発をサポートしています。 Docker がインストールされていない場合は、以下のを参考にインストールしてください。
Google Cloud Project の作成
Google Cloud Project を作成することで、Google Cloud の各種リソースを利用することができます。公式の Google Cloud ドキュメントを参照して、新しいプロジェクトを作成してください。
Google Cloud VertexAI の有効化
Skeet は Google Cloud VertexAI と統合されています。以下のコマンドを使用して VertexAI を有効にしてください。
$ skeet iam ai
Skeet AI アシスタントの起動
Skeet AI アシスタントは、さまざまなクエリに対応するためのインタラクティブなツールです。
$ skeet ai
起動すると、以下のようなプロンプトが表示されます。 何か話しかけてみましょう。
╔══════════════╤════════════════╗ │ Option │ Value │ ╟──────────────┼────────────────╢ │ AIの種類 │ VertexAI │ ╟──────────────┼────────────────╢ │ モデル │ chat-bison@001 │ ╟──────────────┼────────────────╢ │ 最大トークン │ 1000 │ ╟──────────────┼────────────────╢ │ 感情の大きさ │ 0 │ ╚══════════════╧════════════════╝ 🤖 Skeet AIモード $ <mode> でAIモードを変更 🤖 $ prisma $ typedoc $ translate $ firestore $ function $ method $ help $ q VertexAI が選択されました 🤖 ('q'を入力して終了) ? 何をお手伝いしましょうか? あなた:
Skeet AI Prisma の起動
skeet ai 起動中に, $ prisma と入力すると、 データベースのスキーマを生成するモードになります。 起動すると、データベースのユースケースに関する情報を入力するように求められます。ここでは、「ブログサイトを作りたいです。」と入力してみましょう。
$ skeet ai VertexAI is selected 🤖 (type "q" to quit) You: $ prisma Skeet: 🤖 Prismaスキーマ生成モード 🤖 ? あなたのPrismaの使用例を説明してください。 例: ブログアプリを作りたい。 or 例: 次のフィールドを持つ新しいモデル、Clientを作りたい:id、名前、メール、パスワード、作成日、更新日。 あなた: You: ブログサイトを作りたいです。 model Post { id Int @id @default(autoincrement()) title String content String createdAt DateTime @default(now()) updatedAt DateTime @updatedAt Comment Comment[] User User @relation(fields: [userId], references: [id]) userId Int @@unique([userId, title]) } model Comment { id Int @id @default(autoincrement()) content String postId Int createdAt DateTime @default(now()) updatedAt DateTime @updatedAt Post Post @relation(fields: [postId], references: [id]) } Edit: ./graphql/prisma/schema.prisma
Prisma のスキーマが生成されました。
Prisma スキーマの編集
Prisma のスキーマは、 ./graphql/prisma/schema.prisma に保存されています。 先ほど出力されたスキーマを編集してください。
まだ skeet テンプレートを利用していない場合は、 以下のコマンドで skeet テンプレートを作成してください。
$ skeet create <appName>
このスキーマを元に、データベースのマイグレーションを行います。
DB マイグレーションの作成/実行
Skeet は、Prisma を利用してデータベースのマイグレーションを行うことができます。
$ skeet db migrate <migrationName>
これで、データベースのマイグレーションが完了しました。
GraphQL API の作成
Skeet は、スキーマから GraphQL API を自動生成することができます。
$ skeet g scaffold
GraphQL API の起動
Skeet は、GraphQL API をローカルで起動することができます。
$ skeet s
以下の URL で GraphQL API にアクセスできます。
Type の同期
Skeet は、GraphQL API から TypeScript の型定義を自動生成することができます。
$ skeet sync types