Receber por email
← Voltar para o catálogo

api-design

REST API design best practices. Use when designing APIs, choosing status codes, or creating endpoints.

65estrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: NOASSERTION

Como adicionar

/plugin marketplace add Tibsfox/gsd-skill-creator

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/api-design-tibsfox/svg)](https://www.skillteca.com.br/skills/api-design-tibsfox)

Alerta por categoria

Receba novas skills de Design e Frontend toda segunda

1 email curto, só com as skills novas de Design e Frontend. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

REST API Design

Endpoint Rules

  • Nouns, not verbs: /users not /getUsers — HTTP method is the verb
  • Plural nouns: /users, /orders — consistent collections
  • Kebab-case: /user-profiles not /user_profiles
  • Max 2 levels nesting: /users/{id}/orders — deeper use query params
  • No trailing slashes, no extensions

HTTP Methods

| Method | Purpose | Idempotent | |--------|---------|------------| | GET | Retrieve | Yes | | POST | Create | No | | PUT | Replace entire resource | Yes | | PATCH | Partial update | No | | DELETE | Remove | Yes |

Status Codes

| Code | Use When | |------|----------| | 200 | Success with body | | 201 | Resource created (+ Location header) | | 204 | Success, no body (DELETE) | | 400 | Malformed request | | 401 | Not authenticated | | 403 | Authenticated but forbidden | | 404 | Not found | | 409 | Conflict (duplicate) | | 422 | Valid syntax, invalid semantics | | 429 | Rate limited |

Error Format

{"error": {"code": "VALIDATION_ERROR", "message": "...", "details": [], "request_id": "req_..."}}

Key Rules

  • Always paginate lists (cursor-based preferred, max page size enforced)
  • Never expose sequential IDs — use UUIDs
  • Auth credentials in headers, never URLs
  • Return 400 for unknown parameters (catch typos)
  • Include request_id in every response
Compartilhar X LinkedIn