← スキル一覧に戻る

api-design
by resper1965
⭐ 0🍴 0📅 2026年1月21日
SKILL.md
type: skill name: Api Design description: Design RESTful APIs following best practices skillSlug: api-design phases: [P, R] generated: 2026-01-20 status: filled scaffoldVersion: "2.0.0"
API Design Skill
When to Use
Use this skill when:
- Designing CLI interfaces
- Planning function signatures
- Creating export formats
- Designing data structures
CLI API Design
Command Structure
Pattern from project:
script.py [command] [options] [arguments]
Examples:
# Simple command
python indexer.py
# Command with arguments
python search.py "termo de busca"
# Command with options
python search.py "termo" --category anexo --export results.csv
# Command with flags
python search.py --list-categories
Function API Design
Pattern: Function Signatures
# Good: Clear parameters with defaults
def search(query, category=None, contract_number=None, export_csv=None):
"""Busca documentos no banco de dados."""
Argument Parsing Pattern
Use argparse for CLI:
parser = argparse.ArgumentParser(description='Busca documentos indexados')
parser.add_argument('query', nargs='?', help='Termo de busca')
parser.add_argument('--category', '-c', help='Filtrar por categoria')
Data Structure Design
Return Values
Pattern: Dictionary for complex data
return {
"category": category,
"contract_number": contract_number,
"document_type": document_type,
"document_number": document_number
}
Metadata Format
Pattern: JSON metadata
metadata = {
"size": stat.st_size,
"size_mb": round(stat.st_size / (1024 * 1024), 2),
"modified": datetime.datetime.fromtimestamp(stat.st_mtime).isoformat()
}
metadata_json = json.dumps(metadata, ensure_ascii=False)
Export Format Design
CSV Export
Pattern: Consistent column names
data.append({
"Arquivo": filename,
"Categoria": category,
"Tipo": doc_type,
"Contrato": contract_number or "",
"Trecho": fragment,
"Caminho": filepath
})
API Versioning
Current approach: CLI-based (no versioning needed)
- Functions can evolve
- CLI commands stable
- Export formats consistent
Design Principles
- Consistency: Similar functions have similar signatures
- Clarity: Parameter names are self-documenting
- Flexibility: Optional parameters for common use cases
- Error Handling: Clear error messages in Portuguese
Examples from Codebase
Good API Design
def search(query, category=None, contract_number=None, export_csv=None):
"""Busca documentos no banco de dados."""
# Clear parameters
# Optional filters
# Export option
Good CLI Design
python search.py "termo" --category anexo --contract TNE_JU_COM_0002-13 --export results.csv
Checklist
- Clear function signatures
- Consistent naming
- Optional parameters have defaults
- Error handling documented
- Examples provided
- Export formats consistent
スコア
総合スコア
50/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です