API 项目模板,以 Typescript 编写

2025-05-27

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
Enter fullscreen mode Exit fullscreen mode

完整项目请见此处。如有任何建议,请告诉我😄。

文章来源:https://dev.to/arifintahu/api-project-template-writing-in-typescript-5dmk
PREV
使用 TypeScript 编写结构良好的单元测试
NEXT
Top 3 open-source Firebase alternatives for 2020 Parse Kuzzle Appwrite Bottom line