원클릭으로
api-design
Design RESTful APIs following best practices
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Design RESTful APIs following best practices
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Systematic bug investigation and root cause analysis
Review code quality, patterns, and best practices
Generate commit messages following conventional commits with scope detection
Generate and update technical documentation
Break down features into implementable tasks
Review pull requests against team standards and best practices
| type | skill |
| name | Api Design |
| description | Design RESTful APIs following best practices |
| skillSlug | api-design |
| phases | ["P","R"] |
| generated | "2026-02-08T00:00:00.000Z" |
| status | filled |
| scaffoldVersion | 2.0.0 |
Use this skill when designing new routes or modifying existing endpoints in the Smart Farming application. The project uses Flask blueprints with server-rendered HTML (Jinja2 + HTMX), not a traditional REST JSON API.
The project uses these URL patterns:
| Action | Method | URL Pattern | Example |
|---|---|---|---|
| List/Dashboard | GET | /{domain} | /sensors-records |
| Create form | GET | /{domain}/create | /checklist-records/create |
| Create submit | POST | /{domain} | POST /plants |
| Edit form | GET | /{domain}/{id}/edit | /sensors-records/{id}/edit |
| Edit submit | PUT/POST | /{domain}/{id} | PUT /plants/{id} |
| Delete | DELETE | /{domain}/{id} | DELETE /checklist-records/{id} |
| Dashboard | GET | /{domain}/dashboard | /sensors-records/dashboard |
Each domain has its own blueprint in src/app/infra/views/{domain}_views/:
from flask import Blueprint
{domain}_views_bp = Blueprint("{domain}", __name__, url_prefix="/{domain}")
Register new blueprints in src/app/infra/views/__init__.py.
Views follow this standard pattern:
@bp.route("/path", methods=["GET"])
@login_required # if admin-only
def view_name():
# 1. Get use case from factory
use_case = create_{action}_use_case()
# 2. Extract params from request
params = request.args.get("param")
# 3. Execute use case
result = use_case.execute(params)
# 4. Render template with data
return render_template("pages/{domain}/page.html", data=result)
For partial page updates via HTMX:
hx-target and hx-swap attributeshx-trigger for custom events after mutations| Scenario | Response |
|---|---|
| Page render | render_template("pages/...") |
| HTMX partial | render_template("components/...") |
| Redirect after mutation | redirect(url_for("blueprint.view")) |
| Error page | render_template("pages/error/..."), status 4xx/5xx |
| CSV download | Response(csv_data, mimetype="text/csv") |
@login_required for admin-only operationsinfra/views/__init__.pysrc/ui/templates/pages/