【第13天】BFF环境构建 – NestJS GraphQL
首先
今天是2023年的圣诞节倒计时第13天。
为了开始开发BFF,这次我们将进行环境建设。
最好的朋友 (zuì de
BFF的意思是最好的朋友。
来自ChatGPT
BFF(Frontend to Backend)是软件开发的一种架构模式。这种模式为前端(例如,Web应用程序或移动应用程序)提供专用的后端。通过这种方式,可以实现专为前端需求设计的API,并且简化前端的开发和维护工作。
我了解它是为了前端而存在,并且起到与后端的沟通中介的作用。
我想利用GraphQL来构建这次的BFF。
采用GraphQL的原因
我主要采用的原因有两个。
-
- 返回仅客户端请求的数据
- 可以通过较少的请求访问多个资源。
1. GraphQL 被设计成仅返回客户端请求的数据,可以防止过度获取数据。
2. 可以通过单个查询请求访问多个资源,无需多个请求即可获取信息。这样可以避免 RESTful API 中常见的问题,如“访问信息需要许多端点”的问题。参考链接:https://qiita.com/hirac/items/d4b470afa14e1741ab99。
接下来我们将在NestJS上创建一个GraphQL服务器。
Nest.js是一个基于Node.js的开发框架。
NestJS是什么
NestJS是一个在Node.js上运行的后端开发框架。
环境建设!
实际上,GraphQL + TypeScript的构建方法已经在官方参考文档中提供了,我们将根据该文档进行进一步操作。
首先我们要安装NestJS环境。
npm i -g @nestjs/cli
nest new bff
? Which package manager would you ❤️ to use? npm
CREATE bff/.eslintrc.js
...
✔ Installation in progress... ☕
? Successfully created project bff
? Get started with the following commands:
$ cd bff
$ npm run start
Thanks for installing Nest ?
Please consider donating to our open collective
to help us maintain this package.
? Donate: https://opencollective.com/nest
接下来我们将准备在NestJS上搭建GraphQL服务器所需的必要工具。
cd bff
npm i @nestjs/graphql @nestjs/apollo @apollo/server graphql
这样准备工作就完成了。
下次我们将进行用于测试的WireMock的设置!