Skip to content
cccskills
FreePublished on GitHub

api-design

Design and implement RESTful APIs with proper patterns, validation, and documentation.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md2.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

API Design Skill

Design and implement robust RESTful APIs following industry best practices for the portfolio's Next.js API routes.

When to use this skill

  • Creating new API endpoints
  • Refactoring existing API routes
  • Implementing API validation and error handling
  • Adding rate limiting and authentication
  • Documenting API endpoints

Workflow

  1. Analyze requirements — Understand the data model, HTTP methods needed, and response format
  2. Design endpoints — Follow RESTful conventions (GET/POST/PUT/DELETE, proper URLs)
  3. Implement validation — Use Zod or similar for request validation
  4. Add error handling — Consistent error responses with proper status codes
  5. Implement rate limiting — Protect against abuse
  6. Document endpoints — Add JSDoc and OpenAPI specs if needed

Best Practices

  • Use proper HTTP status codes (200, 201, 400, 401, 403, 404, 500)
  • Consistent response format: { success: boolean, data?: T, error?: string }
  • Validate request bodies, query params, and headers
  • Use middleware for cross-cutting concerns (auth, logging, rate limiting)
  • Implement proper CORS configuration
  • Use TypeScript for type safety
  • Handle edge cases and provide meaningful error messages

API Route Pattern (Next.js App Router)

// app/api/resource/route.ts
import { NextRequest, NextResponse } from 'next/server';
import { z } from 'zod';

const ResourceSchema = z.object({
  name: z.string().min(1),
  // ...
});

export async function GET(request: NextRequest) {
  try {
    // Implementation
    return NextResponse.json({ success: true, data: result });
  } catch (error) {
    return NextResponse.json(
      { success: false, error: 'Internal server error' },
      { status: 500 }
    );
  }
}

export async function POST(request: NextRequest) {
  try {
    const body = await request.json();
    const validated = ResourceSchema.parse(body);
    // Implementation
    return NextResponse.json({ success: true, data: result }, { status: 201 });
  } catch (error) {
    if (error instanceof z.ZodError) {
      return NextResponse.json(
        { success: false, error: 'Validation failed', details: error.errors },
        { status: 400 }
      );
    }
    return NextResponse.json(
      { success: false, error: 'Internal server error' },
      { status: 500 }
    );
  }
}

Checklist

  • Proper HTTP methods and status codes
  • Request validation with Zod
  • Consistent error response format
  • Rate limiting implemented
  • CORS configured
  • TypeScript types defined
  • Error logging
  • Input sanitization

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Audit and fix accessibility issues across the portfolio to ensure WCAG 2.1 AA compliance.

The English summary is being prepared. Showing the original description.

PP-Namias/Portfolio2Updated Oct 16, 2026

Creates a new blog post document in the Sanity studio. Use when the user wants to write a blog post, publish an article, or schedule a future post.

The English summary is being prepared. Showing the original description.

PP-Namias/Portfolio2Updated Oct 16, 2026

Creates a new certification document in the Sanity studio. Use when the user wants to add a credential, certificate, or professional accreditation to the Certifications collection.

The English summary is being prepared. Showing the original description.

PP-Namias/Portfolio2Updated Oct 16, 2026

Adds a new skill MD file to the studio's skills collection. Use when the user wants to author a new step-by-step recipe for the studio's in-app Skills tool or the .agents mirror.

The English summary is being prepared. Showing the original description.

PP-Namias/Portfolio2Updated Oct 16, 2026

Creates a new project document in the Sanity studio. Use when the user wants to add a new portfolio project, a case study, or a work sample to the Projects collection.

The English summary is being prepared. Showing the original description.

PP-Namias/Portfolio2Updated Oct 16, 2026

Creates a new experience document in the Sanity studio. Use when the user wants to add a job, role, internship, or work history entry to the Experience collection.

The English summary is being prepared. Showing the original description.

PP-Namias/Portfolio2Updated Oct 16, 2026

See all skills by PP-Namias

Report a problem with this skill