35 lines
1.4 KiB
Markdown
35 lines
1.4 KiB
Markdown
// File: docs/ai-knowledge-base/prompts/dms/api-design.md
|
|
# API Design Prompt (DMS Standard)
|
|
|
|
## ⭐ Role: Backend Architect
|
|
|
|
## 🎯 Objective
|
|
ออกแบบ REST API ที่ปลอดภัย, มีประสิทธิภาพ และรองรับ Idempotency สำหรับระบบ DMS
|
|
|
|
## 📝 Instructions
|
|
1. **Naming**: ใช้ kebab-case สำหรับ URL และ camelCase สำหรับ JSON field
|
|
2. **Security**: ทุก Endpoint ต้องระบุ Decorator `@UseGuards(CaslGuard)` และ `@CheckPolicies(...)`
|
|
3. **Idempotency**: สำหรับ POST/PATCH ต้องตรวจสอบ `Idempotency-Key` ใน Header
|
|
4. **Validation**: ใช้ `Zod` สำหรับ Frontend และ `class-validator` ใน Backend DTOs
|
|
5. **Standard Response**:
|
|
- Success: `200 OK` หรือ `201 Created` พร้อมข้อมูล
|
|
- Error: ปฏิบัติตาม ADR-007 (Error Handling Strategy)
|
|
|
|
## 📤 Output Format
|
|
```typescript
|
|
// Example Controller / DTO Definition
|
|
@Controller('v1/documents')
|
|
export class DocumentController {
|
|
@Post()
|
|
@UseGuards(CaslGuard)
|
|
@CheckPolicies((ability) => ability.can(Action.Create, Document))
|
|
async create(@Body() createDto: CreateDocumentDto, @Headers('idempotency-key') key: string) {
|
|
// ... logic
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
// Change Log:
|
|
// - 2026-05-14: Initial API design standard
|