rest-api-design
Designs REST and HTTP endpoints for this project—URL structure, HTTP methods, status codes, request/response patterns, error handling, and versioning.
Skill by pedromsmoreira
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/pedromsmoreira-rest-api-design
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, backend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/rest-api-design
What's inside
- Skill name
rest-api-design- Description
- Designs REST and HTTP endpoints for this project—URL structure, HTTP methods, status codes, request/response patterns, error handling, and versioning. Use when creating or modifying REST APIs, HTTP handlers, routing, or API contracts.
- License
- MIT
- Instructions
- 470 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# REST API Design Skill
## When to use
- Designing or modifying REST API endpoints, URL structures, or routing
- Defining request/response formats, status codes, and error responses
- Planning API versioning strategies or backward compatibility
- Creating API documentation or OpenAPI/Swagger specs
- Understanding general REST principles and patterns
For **project-specific implementation** (shrtner handlers, router configuration, error types), see `../../rules/http-rest-standards.mdc`. For **backend implementation** (Go handlers, services, domain logic), use the `go-backend` skill. For **testing** REST endpoints, use the `testing` skill.
**Note**: This skill provides **general REST design principles** that apply across projects. For shrtner-specific patterns (handler structure, error types, router setup), refer to the rule file above.
## Library Usage
- **Use gorilla/mux** for routing (only external library allowed)
- **Use standard library** for all other functionality:
- `net/http` for HTTP handling
- `encoding/json` for JSON encoding/decoding
- `strconv` for string conversions
- `context` for context handling
- **Avoid** other external libraries unless absolutely necessary
## REST Design Principles
### Resource-Based URLs
- Use nouns, not verbs: `/users`, `/entities`, `/users/{id}/resources`
- Use plural nouns for collections: `/users` not `/user`
- Use hierarchical paths for relationships: `/users/{userId}/entities/{entityId}`
- Keep URLs simple and intuitive
```go
// ✅ GOOD: Resource-based URLs
GET /api/v1/users
GET /api/v1/users/{id}
POST /api/v1/users
PUT /api/v1/users/{id}
DELETE /api/v1/users/{id}
GET /api/v1/users/{id}/entities
// ❌ BAD: Verb-based or inconsistent
GET /api/v1/getUser/{id}
POST /api/v1/createUser
GET /api/v1/user/{id}/getEntities
```
### HTTP Methods
- **GET**: Retrieve resources (idempotent, safe)
- **POST**: Create resources or perform actions
- **PUT**: Replace entire resource (idempotent)
- **PATCH**: Partial update using JSON Merge Patch (RFC 7386) (idempotent when possible)
- **DELETE**: Remove resources (idempotent)
```go
// ✅ GOOD: Proper HTTP method usage
POST /api/v1/users // Create user
GET /api/v1/users/{id} // Get user
PUT /api/v1/users/{id} // Replace user
PATCH /api/v1/users/{id} // Partial update (JSON Merge Patch)
DELETE /api/v1/users/{id} // Delete user
// ❌ BAD: Using POST for everything
POST /api/v1/users/{id}/get // Should be GET
POST /api/v1/users/{id}/delete // Should be DELETE
```
### Status Codes
- **2xx Success**: 200 (OK), 201 (Created), 204 (No Content)
- **4xx Client Error**: 400 (Bad Request), 401 (Unauthorized), 403 (Forbidden), 404 (Not Found), 409 (Conflict)
- **5xx Server Error**: 500 (Internal Server Error), 502 (Bad Gateway), 503 (Service Unavailable)
```go
// ✅ GOOD: Appropriate status codes
func CreateResource() func(w http.ResponseWriter, r *http.Request) {
return func(w http.ResponseWriter, r *http.Request) {
var req CreateRequest
if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
// 400 Bad Request - malformed request
w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(ErrorResponse{
Code: "400",
Message: "could not decode request body",
})
return
}
// Call service/business logic (implementation-specific)
resource, err := createResource(r.Context(), req)
if err != nil {
if isConflictError(err) {
// 409 Conflict - duplicate resource
w.WriteHeader(http.StatusConflict)
json.NewEncoder(w).Encode(ErrorResponse{
Code: "409",
Message: "resource already exists",
})
return
}
if isValidationError(err) {
// 400 Bad Request - validation error
w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(ErrorResponse{
Code: "400",
Message: "invalid input",
})
return
}
// 500 Internal Server Error - unexpected error
w.WriteHeader(http.StatusInternalServerError)
json.NewEncoder(w).Encode(ErrorResponse{
Code: "500",
Message: "an error occurred",
})
return
}From pedromsmoreira/ai-configs, MIT.
More from pedromsmoreira/ai-configs
- 0.497score
conventional-commits
pedromsmoreira
Formats and validates commit messages per Conventional Commits (header grammar, optional body and footers, breaking changes).
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
go-backend
pedromsmoreira
Implements and modifies Go backend services for this project—gRPC handlers, services, domain logic, repositories, and Protocol Buffers—following idiomatic Go…
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
http-rest-endpoints
pedromsmoreira
Create HTTP handlers and REST endpoints following shrtner project standards.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
git-commit
pedromsmoreira
Creates git commits safely with Conventional Commits messages.
SkillCFreshness: C★ 1Claude Code +9 - 0.496score
tdd-workflow
pedromsmoreira
Detailed TDD workflow with examples, rationales, and anti-patterns.
SkillCFreshness: C★ 1Claude Code +9 - 0.492score
database-migrations
pedromsmoreira
Creates and manages PostgreSQL schema migrations with golang-migrate for this project.
SkillCFreshness: C★ 1Claude Code +9 - 0.492score
frontend-react
pedromsmoreira
Builds React 18+ and TypeScript UI for this project—components, Material-UI, Zustand, React Query, and REST API integration.
SkillCFreshness: C★ 1Claude Code +9 - 0.492score
user-stories
pedromsmoreira
Writes user stories, acceptance criteria, and backlog items for this project.
SkillCFreshness: C★ 1Claude Code +9 - 0.467score
testing
pedromsmoreira
Implements Test-Driven Development for this project—unit tests, integration tests with testcontainers, mocks, and regression tests.
SkillCFreshness: C★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- May 9, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/pedromsmoreira/ai-configs
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from pedromsmoreira
- 0.497score
conventional-commits
pedromsmoreira
Formats and validates commit messages per Conventional Commits (header grammar, optional body and footers, breaking changes).
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
go-backend
pedromsmoreira
Implements and modifies Go backend services for this project—gRPC handlers, services, domain logic, repositories, and Protocol Buffers—following idiomatic Go…
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
http-rest-endpoints
pedromsmoreira
Create HTTP handlers and REST endpoints following shrtner project standards.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
git-commit
pedromsmoreira
Creates git commits safely with Conventional Commits messages.
SkillCFreshness: C★ 1Claude Code +9 - 0.496score
tdd-workflow
pedromsmoreira
Detailed TDD workflow with examples, rationales, and anti-patterns.
SkillCFreshness: C★ 1Claude Code +9 - 0.492score
database-migrations
pedromsmoreira
Creates and manages PostgreSQL schema migrations with golang-migrate for this project.
SkillCFreshness: C★ 1Claude Code +9
Cite this page
rest-api-design skill. Agent Mart. https://agentmart.dev/skills/pedromsmoreira-rest-api-design (last updated 2026-10-24)