← ClaudeAtlas

dev-apilisted

Develop and document a REST or GraphQL API. Use when the user wants to create an endpoint, a route, or structure an API.
christopherlouet/claude-base · ★ 4 · API & Backend · score 83
Install: claude install-skill christopherlouet/claude-base
# Develop an API ## Objective Create well-structured, documented and testable APIs. ## Instructions ### 1. Define the contract Before coding, define: - Endpoint (URL, HTTP method) - Request (body, query params, headers) - Response (status codes, body) - Possible errors ### 2. RESTful structure ``` GET /resources → List (with pagination) GET /resources/:id → Detail POST /resources → Create PUT /resources/:id → Full update PATCH /resources/:id → Partial update DELETE /resources/:id → Delete ``` ### 3. Standard response format ```typescript // Success { "success": true, "data": { ... }, "meta": { "page": 1, "limit": 20, "total": 100 } } // Error { "success": false, "error": { "code": "VALIDATION_ERROR", "message": "Email is required", "details": [ { "field": "email", "message": "Required" } ] } } ``` ### 4. Input validation ```typescript // With Zod const createUserSchema = z.object({ email: z.string().email(), name: z.string().min(2).max(100), role: z.enum(['user', 'admin']).default('user') }); // In the handler const data = createUserSchema.parse(req.body); ``` ### 5. OpenAPI documentation ```yaml paths: /users: post: summary: Create a user tags: [Users] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateUser' responses: '201'