Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Quick reference for RESTful API design patterns, HTTP semantics, caching, and rate limiting. Triggers on: rest api, http methods, status codes, api design, endpoint design, api versioning, rate limiting, caching headers.
.claude/skills/aiskillstore-rest-patterns/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 3% | 0% |
| case-06 | ✓→✓ | = Same ✓ | 15% | 0% |
| case-11 | ✓→✓ | = Same ✓ | 12% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 34% | 0% |
| case-02 | ✓→✓ | = Same ✓ | -5% | 0% |
Quick reference for RESTful API design patterns and HTTP semantics.
| Method | Purpose | Idempotent | Cacheable | |--------|---------|------------|-----------| | GET | Retrieve resource(s) | Yes | Yes | | POST | Create new resource | No | No | | PUT | Replace entire resource | Yes | No | | PATCH | Partial update | Maybe | No | | DELETE | Remove resource | Yes | No |
| Code | Name | Use | |------|------|-----| | 200 | OK | Success with body | | 201 | Created | POST success (add Location header) | | 204 | No Content | Success, no body | | 400 | Bad Request | Invalid syntax | | 401 | Unauthorized | Not authenticated | | 403 | Forbidden | Not authorized | | 404 | Not Found | Resource doesn't exist | | 422 | Unprocessable | Validation error | | 429 | Too Many Requests | Rate limited | | 500 | Server Error | Internal failure |
httpGET /users # List POST /users # Create GET /users/{id} # Get one PUT /users/{id} # Replace PATCH /users/{id} # Update DELETE /users/{id} # Delete # Query parameters GET /users?page=2&limit=20 # Pagination GET /users?sort=created_at:desc # Sorting GET /users?role=admin # Filtering
no-store for sensitive responses| Mistake | Fix | |---------|-----| | Verbs in URLs | /getUsers → /users | | Deep nesting | Flatten or use query params | | 200 for errors | Use proper 4xx/5xx | | No pagination | Always paginate collections | | Missing rate limits | Protect against abuse |
| Task | Pattern | |------|---------| | Paginate | ?page=2&limit=20 | | Sort | ?sort=field:asc | | Filter | ?status=active | | Sparse fields | ?fields=id,name | | Include related | ?include=orders |
For detailed patterns, load:
./references/status-codes.md - Complete status code reference with examples./references/caching-patterns.md - Cache-Control, ETag, CDN patterns./references/rate-limiting.md - Rate limiting strategies and headers./references/response-formats.md - Errors, versioning, bulk ops, HATEOAS| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | pass→pass | 8,429 | 6,472 | -23% | 1 | 1 | 0% | 1,661 | 1,914 | +15% | 0 | 0 | — |
case-11 | pass→pass | 13,494 | 20,761 | +54% | 1 | 1 | 0% | 2,229 | 2,507 | +12% | 0 | 0 | — |
case-05 | pass→pass | 6,218 | 3,776 | -39% | 1 | 1 | 0% | 1,018 | 1,369 | +34% | 0 | 0 | — |
case-01 | fail→pass | 13,549 | 9,028 | -33% | 1 | 1 | 0% | 2,363 | 2,426 | +3% | 0 | 0 | — |
case-02 | pass→pass | 9,579 | 4,527 | -53% | 1 | 1 | 0% | 1,650 | 1,566 | -5% | 0 | 0 | — |
case-03 | pass→pass | 9,676 | 66,011 | +582% | 1 | 1 | 0% | 1,768 | 1,696 | -4% | 0 | 0 | — |
case-04 | pass→pass | 10,024 | 7,221 | -28% | 1 | 1 | 0% | 1,737 | 2,004 | +15% | 0 | 0 | — |
case-07 | pass→pass | 12,017 | 8,178 | -32% | 1 | 1 | 0% | 2,058 | 2,224 | +8% | 0 | 0 | — |
case-08 | pass→pass | 10,383 | 6,409 | -38% | 1 | 1 | 0% | 1,704 | 1,853 | +9% | 0 | 0 | — |
case-09 | pass→pass | 9,231 | 3,736 | -60% | 1 | 1 | 0% | 1,626 | 1,399 | -14% | 0 | 0 | — |
case-10 | pass→pass | 10,022 | 4,225 | -58% | 1 | 1 | 0% | 1,587 | 1,485 | -6% | 0 | 0 | — |
case-12 | pass→pass | 7,522 | 5,430 | -28% | 1 | 1 | 0% | 1,199 | 1,451 | +21% | 0 | 0 | — |
case-13 | pass→pass | 5,486 | 2,948 | -46% | 1 | 1 | 0% | 891 | 1,247 | +40% | 0 | 0 | — |
case-14 | pass→pass | 10,207 | 7,858 | -23% | 1 | 1 | 0% | 1,805 | 2,110 | +17% | 0 | 0 | — |
case-15 | pass→pass | 10,388 | 10,973 | +6% | 1 | 1 | 0% | 1,678 | 1,925 | +15% | 0 | 0 | — |
case-16 | pass→pass | 15,674 | 13,946 | -11% | 1 | 1 | 0% | 2,598 | 3,048 | +17% | 0 | 0 | — |
case-17 | pass→pass | 18,948 | 20,229 | +7% | 1 | 1 | 0% | 3,180 | 3,332 | +5% | 0 | 0 | — |
case-18 | pass→pass | 12,685 | 11,319 | -11% | 1 | 1 | 0% | 2,266 | 2,762 | +22% | 0 | 0 | — |
case-19 | pass→pass | 11,879 | 7,899 | -34% | 1 | 1 | 0% | 1,860 | 1,963 | +6% | 0 | 0 | — |
case-20 | pass→pass | 20,894 | 10,672 | -49% | 1 | 1 | 0% | 2,786 | 2,761 | -1% | 0 | 0 | — |
case-21 | pass→pass | 18,716 | 14,182 | -24% | 1 | 1 | 0% | 2,992 | 3,163 | +6% | 0 | 0 | — |
case-22 | pass→pass | 18,070 | 15,106 | -16% | 1 | 1 | 0% | 3,290 | 3,381 | +3% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +5 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.