fix: 修复service模块重命名逻辑并成功集成core层API
主要修改: 1. 修复module-generator中服务重命名时的DI错误 - 对于重命名的服务,直接使用别名注册,避免TypeScript找不到原始名称 - 移除不必要的provide/useClass模式 2. 集成core层到主应用 - 在app.module.ts中导入wwjcloud-core的AppModule - 在wwjcloud-core/src/index.ts中导出AppModule 3. 构建结果 - 编译错误: 64+ -> 0 - 注册路由: 15 -> 678 - Docker服务全部正常启动 - API接口正常响应
This commit is contained in:
@@ -2,17 +2,7 @@
|
||||
|
||||
## 认证架构对比
|
||||
|
||||
### 1. PHP ThinkPHP (传统方式)
|
||||
```php
|
||||
// 通过中间件全局处理
|
||||
class AdminCheckToken {
|
||||
public function handle(Request $request, Closure $next) {
|
||||
// 检查token,某些路由可以跳过
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 2. Java Spring Boot (注解方式)
|
||||
### 1. Java Spring Boot (注解方式)
|
||||
```java
|
||||
@RestController
|
||||
public class AuthController {
|
||||
@@ -26,7 +16,7 @@ public class AuthController {
|
||||
}
|
||||
```
|
||||
|
||||
### 3. NestJS (装饰器方式) - 更像Java
|
||||
### 2. NestJS (装饰器方式) - 更像Java
|
||||
```typescript
|
||||
@Controller('adminapi/auth')
|
||||
export class AuthController {
|
||||
@@ -104,15 +94,15 @@ export const Public = () => SetMetadata(IS_PUBLIC_KEY, true);
|
||||
|
||||
### 路由路径对齐
|
||||
|
||||
#### PHP → NestJS 路径映射
|
||||
#### Java → NestJS 路径映射
|
||||
```typescript
|
||||
// PHP: /adminapi/sys/get/website
|
||||
// Java: /adminapi/sys/get/website
|
||||
// NestJS: @Get('get/website') 在 @Controller('adminapi/sys')
|
||||
|
||||
// PHP: /adminapi/login
|
||||
// Java: /adminapi/login
|
||||
// NestJS: @Get('login') 在 @Controller('adminapi') + @Public()
|
||||
|
||||
// PHP: /adminapi/captcha/create
|
||||
// Java: /adminapi/captcha/create
|
||||
// NestJS: @Get('create') 在 @Controller('adminapi/captcha') + @Public()
|
||||
```
|
||||
|
||||
@@ -145,9 +135,9 @@ export class ConfigController {
|
||||
```
|
||||
|
||||
#### 3. 路径命名规范
|
||||
- **PHP方法名**: `getWebsite()` → **NestJS路径**: `get/website`
|
||||
- **PHP方法名**: `setWebsite()` → **NestJS路径**: `set/website`
|
||||
- **PHP方法名**: `getSceneDomain()` → **NestJS路径**: `get/scene/domain`
|
||||
- **Java方法名**: `getWebsite()` → **NestJS路径**: `get/website`
|
||||
- **Java方法名**: `setWebsite()` → **NestJS路径**: `set/website`
|
||||
- **Java方法名**: `getSceneDomain()` → **NestJS路径**: `get/scene/domain`
|
||||
|
||||
### 验证方法
|
||||
|
||||
@@ -168,10 +158,10 @@ curl -H "Authorization: Bearer <token>" http://localhost:3001/adminapi/site/list
|
||||
|
||||
### 总结
|
||||
|
||||
NestJS的认证处理方式**更像Java Spring Boot**,使用装饰器模式:
|
||||
NestJS的认证处理方式**与Java Spring Boot相同**,使用装饰器模式:
|
||||
|
||||
1. **@Public()** = Java的 **@SaNotCheckLogin**
|
||||
2. **默认需要登录** = Java的 **@SaCheckLogin**
|
||||
3. **全局守卫** = Java的 **拦截器**
|
||||
|
||||
这种方式比PHP的中间件方式更加灵活和类型安全,符合现代框架的设计理念。
|
||||
这种方式灵活且类型安全,符合现代框架的设计理念。
|
||||
|
||||
Reference in New Issue
Block a user