NestJS GraphQL API + gRPC 微服务项目教程
1. 项目的目录结构及介绍
nestjs-graphql-microservices/
├── _proto/
├── api-gateway/
├── docs/
├── k8s/
├── microservices/
├── scripts/
├── .editorconfig
├── .gitignore
├── LICENSE
├── README.md
├── docker-compose.yaml
└── package.json
_proto/
: 包含 Protocol Buffers 定义文件。api-gateway/
: GraphQL API 网关的代码。docs/
: 项目文档。k8s/
: Kubernetes 配置文件。microservices/
: 各个微服务的代码。scripts/
: 项目脚本。.editorconfig
: 编辑器配置文件。.gitignore
: Git 忽略文件配置。LICENSE
: 项目许可证。README.md
: 项目说明文档。docker-compose.yaml
: Docker Compose 配置文件。package.json
: 项目依赖管理文件。
2. 项目的启动文件介绍
api-gateway/
main.ts
: 主启动文件,负责启动 GraphQL API 网关。
microservices/
main.ts
: 主启动文件,负责启动各个微服务。
3. 项目的配置文件介绍
docker-compose.yaml
version: '3.7'
services:
api-gateway:
build:
context: ./api-gateway
dockerfile: Dockerfile
ports:
- "3000:3000"
depends_on:
- microservice1
- microservice2
microservice1:
build:
context: ./microservices/microservice1
dockerfile: Dockerfile
microservice2:
build:
context: ./microservices/microservice2
dockerfile: Dockerfile
docker-compose.yaml
: 定义了 Docker 容器的配置,包括 API 网关和各个微服务的构建和运行配置。
package.json
{
"name": "nestjs-graphql-microservices",
"version": "1.0.0",
"scripts": {
"start:api-gateway": "nest start api-gateway",
"start:microservice1": "nest start microservices/microservice1",
"start:microservice2": "nest start microservices/microservice2"
},
"dependencies": {
"@nestjs/common": "^7.0.0",
"@nestjs/core": "^7.0.0",
"@nestjs/graphql": "^7.0.0",
"@nestjs/microservices": "^7.0.0",
"grpc": "^1.24.0",
"graphql": "^15.0.0",
"sequelize": "^6.0.0",
"pg": "^8.0.0"
}
}
package.json
: 定义了项目的依赖和脚本命令,包括启动 API 网关和各个微服务的命令。
以上是基于开源项目 nestjs-graphql-microservices
的教程,涵盖了项目的目录结构、启动文件和配置文件的介绍。希望对您有所帮助!