Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/vinilana/workshop-yungas --skill api-design명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
SOC 직업 분류 기준
| type | skill |
| name | Api Design |
| description | Design RESTful APIs following best practices |
| skillSlug | api-design |
| phases | ["P","R"] |
| generated | "2026-03-02T00:00:00.000Z" |
| status | filled |
| scaffoldVersion | 2.0.0 |
Activate this skill when designing new API endpoints or reviewing existing ones. It ensures RESTful conventions, consistent response shapes, and proper HTTP semantics.
/api/ prefix for all endpoints./api/franchises, not /api/franchise).packages/shared/src/constants.ts under API_ROUTES.GET — Read (list or single resource). Never mutate state.POST — Create a new resource. Return 201 with created entity.PUT — Full update of a resource.PATCH — Partial update of a resource.DELETE — Remove a resource.ApiResponse<T> — { data: T, message?: string }ApiErrorResponse — { error: string, message?: string }200 — Successful read or update201 — Successful creation400 — Validation error (missing required fields, invalid data)401 — Missing or invalid authentication token404 — Resource not found500 — Internal server error?search=term — Full-text search across relevant fields?page=1&limit=20 — Pagination (future)?status=active — Filtering (future)class-validator decorators on DTO classes.name (required), owner_name (required), email (required, format).Endpoint specification:
POST /api/franchises
Authorization: Bearer <token>
Content-Type: application/json
Request:
{
"name": "Franchise São Paulo",
"ownerName": "Maria Silva",
"email": "maria@example.com",
"phone": "(11) 99999-0000",
"city": "São Paulo",
"state": "SP",
"status": "pending"
}
Response (201):
{
"data": {
"id": 11,
"name": "Franchise São Paulo",
"ownerName": "Maria Silva",
"email": "maria@example.com",
"phone": "(11) 99999-0000",
"address": null,
"city": "São Paulo",
"state": "SP",
"status": "pending",
"createdAt": "2026-03-02T12:00:00.000Z",
"updatedAt": "2026-03-02T12:00:00.000Z"
}
}
Response (400):
{
"error": "Validation failed",
"message": "name, ownerName, and email are required"
}