index.ts 1011 B

1234567891011121314151617181920212223242526
  1. import { OpenAPIHono } from '@hono/zod-openapi';
  2. import { createCrudRoutes } from '../../utils/generic-crud.routes';
  3. import { UserEntity } from '../../modules/users/user.entity';
  4. import { UserSchema, CreateUserDto, UpdateUserDto } from '../../modules/users/user.schema';
  5. import { authMiddleware } from '../../middleware/auth.middleware';
  6. import customRoutes from './custom';
  7. // 创建通用CRUD路由配置
  8. const userCrudRoutes = createCrudRoutes({
  9. entity: UserEntity,
  10. createSchema: CreateUserDto,
  11. updateSchema: UpdateUserDto,
  12. getSchema: UserSchema,
  13. listSchema: UserSchema,
  14. searchFields: ['username', 'nickname', 'phone', 'email'],
  15. relations: ['roles'],
  16. middleware: [authMiddleware],
  17. readOnly: true // 创建/更新/删除使用自定义路由
  18. });
  19. // 创建混合路由应用
  20. const app = new OpenAPIHono()
  21. .route('/', customRoutes) // 自定义业务路由(创建/更新/删除)
  22. .route('/', userCrudRoutes); // 通用CRUD路由(列表查询和获取详情)
  23. export default app;