快速上手
这篇指南将带你快速上手 GQLoom,并创建一个简单的 GraphQL 后端应用。
前提条件
你只需要一个 JavaScript/TypeScript 运行时,比如 Node.js、Bun、Deno 或 Cloudflare Workers。
初始化项目
小提示
如果你已有一个项目,可以跳过这一步,直接快进到安装依赖。
首先我们需要新建文件夹并初始化项目:
sh
mkdir gqloom-app # 新建文件夹
cd ./gqloom-app # 进入文件夹
npm init -y # 初始化空项目
npm i -D typescript @types/node tsx # 安装 TypeScript 和相关依赖
npx tsc --init # 初始化 TypeScript 配置sh
mkdir gqloom-app # 新建文件夹
cd ./gqloom-app # 进入文件夹
yarn init -y # 初始化空项目
yarn add -D typescript @types/node tsx # 安装 TypeScript 和相关依赖
yarn dlx -q -p typescript tsc --init # 初始化 TypeScript 配置sh
mkdir gqloom-app # 新建文件夹
cd ./gqloom-app # 进入文件夹
pnpm init # 初始化空项目
pnpm add -D typescript @types/node tsx # 安装 TypeScript 和相关依赖
pnpm exec tsc --init # 初始化 TypeScript 配置sh
mkdir gqloom-app # 新建文件夹
cd ./gqloom-app # 进入文件夹
bun init # 初始化项目sh
mkdir gqloom-app # 新建文件夹
cd ./gqloom-app # 进入文件夹
deno init # 初始化项目安装依赖
GQLoom 支持诸多的运行时类型,选择你最喜欢的 ORM 和输入验证库!
sh
npm i graphql @gqloom/core valibot @gqloom/valibotsh
pnpm add graphql @gqloom/core valibot @gqloom/valibotsh
yarn add graphql @gqloom/core valibot @gqloom/valibotsh
bun add graphql @gqloom/core valibot @gqloom/valibotsh
deno add npm:graphql npm:@gqloom/core npm:valibot npm:@gqloom/valibot此外,我们还需要选择一个适配器来运行我们的 GraphQL 服务器。
这里我们选择 graphql-yoga 适配器。
sh
npm i graphql-yogash
pnpm add graphql-yogash
yarn add graphql-yogash
bun add graphql-yogash
deno add npm:graphql-yoga你好,世界
ts
import { createServer } from "node:http"
import { query, resolver, weave } from "@gqloom/core"
import { ValibotWeaver } from "@gqloom/valibot"
import { createYoga } from "graphql-yoga"
import * as v from "valibot"
const helloResolver = resolver({
hello: query(v.string())
.input({ name: v.nullish(v.string(), "World") })
.resolve(({ name }) => `Hello, ${name}!`),
})
const schema = weave(ValibotWeaver, helloResolver)
const yoga = createYoga({ schema })
const server = createServer(yoga)
server.listen(4000, () => {
console.info("Server is running on http://localhost:4000/graphql")
})下一步
- 查看 GQLoom 的核心概念:丝线、解析器、编织;
- 了解常用功能:上下文、DataLoader、中间件
- 为前端项目添加 GraphQL 客户端:gql.tada、Urql、Apollo Client、TanStack Query、Graffle