- NestJS + TypeScript + Prisma + PostgreSQL 工程骨架 - 微信登录安全流程:服务端 code2Session 换 openid 后签发 JWT, session_key 缓存于 Redis,不信任前端 openid - 统一响应/异常处理、JWT 全局鉴权(@Public 豁免)、Swagger 文档 - Prisma 全量核心 schema(用户/分类/商品/设计清单/地址/订单/支付/上传/定制任务)+ seed - 业务模块空壳(商品/分类/设计清单/地址/订单/支付/上传/BullMQ 队列) - Docker 多阶段镜像 + 本地/生产 docker-compose - docs:密钥获取指南、COS SDK 移除记录 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
33 lines
939 B
TypeScript
33 lines
939 B
TypeScript
import { Body, Controller, Get, Param, Post } from '@nestjs/common';
|
|
import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger';
|
|
import { Public } from '../common/decorators/public.decorator';
|
|
import { ProductsService } from './products.service';
|
|
import { CreateProductDto } from './dto/create-product.dto';
|
|
|
|
@ApiTags('商品')
|
|
@ApiBearerAuth()
|
|
@Controller('products')
|
|
export class ProductsController {
|
|
constructor(private readonly productsService: ProductsService) {}
|
|
|
|
@Public()
|
|
@Get()
|
|
@ApiOperation({ summary: '在售商品列表' })
|
|
list() {
|
|
return this.productsService.list();
|
|
}
|
|
|
|
@Public()
|
|
@Get(':id')
|
|
@ApiOperation({ summary: '商品详情' })
|
|
findOne(@Param('id') id: string) {
|
|
return this.productsService.findOne(id);
|
|
}
|
|
|
|
@Post()
|
|
@ApiOperation({ summary: '创建商品(管理后台用)' })
|
|
create(@Body() dto: CreateProductDto) {
|
|
return this.productsService.create(dto);
|
|
}
|
|
}
|