api-design
REST API Design
Expert guidance for designing clean, consistent, production-grade REST APIs in Phoenix.
Core Principles
- Resources are nouns —
/users,/orders, not/createUser,/getOrders - HTTP methods are verbs — GET reads, POST creates, PUT/PATCH updates, DELETE removes
- Consistent everywhere — same patterns for naming, errors, pagination, auth across all endpoints
- Stateless — each request contains all information needed; no server-side session state
- Predictable — a developer who's seen one endpoint can guess how the rest work
Resource Design
URL Structure
GET /api/v1/users # List users
POST /api/v1/users # Create user
More from hwatkins/my-skills
elixir-tdd
Test-driven development enforcement for Elixir and Phoenix. Requires failing tests before implementation. Use when implementing features, fixing bugs, or when code quality discipline is needed.
23spam-prevention
When the user needs to prevent spam signups, bot accounts, fake registrations, or abuse of signup/trial flows. Also use when mentioning "spam accounts," "fake signups," "bot registrations," "disposable emails," "signup abuse," or "trial fraud." For broader security concerns, see saas-security.
14elixir-otp
OTP patterns for Elixir — GenServer, Agent, Task, ETS, supervision trees, Registry, and process design. Use when designing concurrent systems, stateful processes, or deciding when (and when NOT) to use processes.
8rust-tdd
Test-driven development enforcement for Rust. Requires failing tests before implementation. Use when implementing features, fixing bugs, or when code quality discipline is needed.
5rust-core
Expert Rust development with ownership, borrowing, lifetimes, traits, error handling, and idiomatic patterns. Use for any Rust code.
4rust-async
Async Rust with Tokio, futures, concurrency patterns, channels, and performance. Use when building async services, networking, or concurrent Rust applications.
4