API 项目模板,以 Typescript 编写
构建标准化结构的项目可以节省大量时间。我们可以专注于业务流程,而无需过多考虑项目结构。另一方面,良好的项目结构应该简洁、易于重构且易于维护。
原因如下:
- 你的时间应该专注于创造一些令人惊叹的东西。一个能够解决问题并帮助他人的项目。
- 你不应该一遍又一遍地做同样的任务,比如构建项目
- 你应该在你的余生中践行干燥原则
这次,我创建了完整的 Typescript API 项目模板,可以在github上找到。当然,由于具体需求可能有所不同,所以没有一个模板可以满足所有项目的需求。
内置
该项目结构采用
特征
- 一切都是模块化的,并且可进行单元测试
- 用 Typescript 编写一切
- 具有依赖注入路由、控制器、存储库、中间件和服务的 Express API
- 集中配置加载和验证
- 使用 Swagger 的 API 文档
文件夹结构
├── .husky/ # Pre-commit config for lint staged
├── src/ # All application source
├──── @types/ # Type definition
|
├──── api/
├────── controllers/ # Define all controllers
├────── helpers/ # Define all helpers
├────── lib/
├──────── logger.ts # Define logger
├────── middlewares/
├──────── authorization.ts # Define authorization using JWT
├──────── morgan.ts # Define morgan
├────── models/ # Define all schema models
├────── repositories/ # Define all repositories
├────── routes/
├──────── v1/ # Define all v1 routes
├────── services/ # Define all services
├────── validations/ # Define all controller validations
|
├──── config/
├────── swagger/ # Define swagger configuration
├────── database.ts # Define postgres database connection
├────── express.ts # Define express configuration
|
├──── constants/ # Define all constants
├──── server.ts # Create express config
├──── index.ts # ENTRYPOINT - Start server
|
├── test/ # End-to-end test
|
└── Lots of random build-related files
完整项目请见此处。如有任何建议,请告诉我😄。
文章来源:https://dev.to/arifintahu/api-project-template-writing-in-typescript-5dmk