RESTful API 设计æä½³å®è·µãå½ç¨æ·éè¦è®¾è®¡ API æ¥å£ãå®ä¹ç«¯ç¹è§èãç¼å API ææ¡£ãæè¯ä¼°ç°æ API 设计æ¶ä½¿ç¨æ¤æè½ã
Install
npx skillscat add enoch-robinson/agent-skill-collection/api-design Install via the SkillsCat registry.
SKILL.md
API Design
æä¾ä¸ä¸ç RESTful API 设计æå¯¼ï¼ç¡®ä¿æ¥å£ä¸è´æ§ãå¯ç¨æ§å坿©å±æ§ã
设计åå
- èµæºå¯¼åï¼URL è¡¨ç¤ºèµæºï¼HTTP æ¹æ³è¡¨ç¤ºæä½
- **ä¸è´æ§**ï¼å½åãæ ¼å¼ãé误å¤çä¿æç»ä¸
- çæ¬åï¼æ¯æ API æ¼è¿èä¸ç ´åç°æå®¢æ·ç«¯
- **èªæè¿°**ï¼ååºå å«è¶³å¤ä¿¡æ¯ä¾å®¢æ·ç«¯çè§£
URL 设计è§è
èµæºå½å
GET /users# è·åç¨æ·å表
GET /users/{id} # è·ååä¸ªç¨æ·
POST /users # åå»ºç¨æ·
PUT /users/{id} # æ´æ°ç¨æ·ï¼å
¨éï¼
PATCH /users/{id} # æ´æ°ç¨æ·ï¼é¨åï¼
DELETE /users/{id} # å é¤ç¨æ·å½åè§å
- 使ç¨åè¯å¤æ°ï¼
/usersèé/user - 使ç¨å°ååè¿å符ï¼
/user-profilesèé/userProfiles - é¿å
å¨è¯ï¼
POST /usersèé/createUser - åµå¥èµæºï¼
/users/{id}/ordersï¼æå¤ 2 å±ï¼
HTTP ç¶æç
| ç¶æç | å«ä¹ | 使ç¨åºæ¯ |
|---|---|---|
| 200 | OK | GET/PUT/PATCH æå |
| 201 | Created | POST å建æå |
| 204 | No Content | DELETE æå |
| 400 | Bad Request | 请æ±åæ°é误 |
| 401 | Unauthorized | æªè®¤è¯ |
| 403 | Forbidden | æ æé |
| 404 | Not Found | èµæºä¸åå¨ |
| 422 | Unprocessable | ä¸å¡éªè¯å¤±è´¥ |
| 500 | Server Error | æå¡å¨é误 |
ååºæ ¼å¼
æåååº
{
"data": {
"id": "123",
"name": "å¼ ä¸",
"email": "zhang@example.com"
},
"meta": {
"timestamp": "2024-01-15T10:30:00Z"
}
}å表ååºï¼å¸¦å页ï¼
{
"data": [...],
"pagination": {
"page": 1,
"per_page": 20,
"total": 100,
"total_pages": 5
}
}é误ååº
{
"error": {
"code": "VALIDATION_ERROR",
"message": "请æ±åæ°éªè¯å¤±è´¥",
"details": [
{"field": "email", "message": "é®ç®±æ ¼å¼ä¸æ£ç¡®"}
]
}
}çæ¬æ§å¶
æ¨è URL è·¯å¾çæ¬ï¼
/api/v1/users
/api/v2/usersæ¥è¯¢åæ°è§è
# å页
?page=1&per_page=20
# æåº
?sort=created_at&order=desc
# è¿æ»¤
?status=active&role=admin
# åæ®µéæ©
?fields=id,name,email
# æç´¢
?q=keywordè®¾è®¡æ£æ¥æ¸ å
- URL 使ç¨åè¯å¤æ°
- HTTP æ¹æ³è¯ä¹æ£ç¡®
- ç¶æç ä½¿ç¨æ°å½
- ååºæ ¼å¼ç»ä¸
- éè¯¯ä¿¡æ¯æ¸ æ°
- æ¯æå页åè¿æ»¤
- å å«çæ¬å·