Files
english/.opencode/skills/code-review/references/checklists/api.md
2026-04-12 01:06:31 +07:00

1.9 KiB

API Review Checklist (Overlay)

Additive to base.md. Apply when project exposes REST/GraphQL/gRPC APIs.

Detection

Apply this overlay when any of these are true:

  • Project has route definitions (Express, FastAPI, NestJS, Django, Rails, Go chi/gin)
  • OpenAPI/Swagger spec file exists
  • src/routes/, src/api/, src/controllers/ directories
  • GraphQL schema files in the diff

Pass 1 — CRITICAL (additions to base)

Auth & Rate Limiting

  • Public endpoints missing rate limiting (login, registration, password reset)
  • API keys or tokens exposed in URL query parameters (use headers)
  • Missing auth middleware on new routes
  • Batch/bulk endpoints without per-item authorization checks

Input Validation

  • Request body accepted without schema validation (missing Zod, Joi, Pydantic, etc.)
  • Mass assignment: entire request body spread into database model
  • File upload without size/type restrictions
  • Array inputs without length limits (DoS via large payloads)

Data Exposure

  • Sensitive fields in API responses (password hashes, internal IDs, tokens)
  • Stack traces or internal error details in production error responses
  • Verbose error messages that leak schema/implementation details

Pass 2 — INFORMATIONAL (additions to base)

API Design

  • List endpoints without pagination (LIMIT/OFFSET or cursor-based)
  • Missing consistent error response format across endpoints
  • Inconsistent naming conventions (camelCase vs snake_case in same API)
  • Missing request/response content-type headers

Observability

  • New endpoints without logging/metrics
  • Error paths that swallow exceptions silently
  • Missing correlation/request IDs for tracing

Versioning & Compatibility

  • Breaking changes to existing response shapes without version bump
  • Removed fields without deprecation notice
  • Changed field types (string → number) in existing responses