agentsclimarketplace

Api endpoint

Skill zakelfassi/skills-driven-development/examples/webapp-starter/skills/api-endpoint

Agents that learn by doing — and remember how they did it. A methodology for AI agents to create, evolve, and share reusable skills.

Install
npx -y skills add zakelfassi/skills-driven-development --skill api-endpoint

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 17 stars17 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Scaffold a REST API endpoint with route, controller, validation, and tests. Use when creating new API endpoints, adding resources, or when asked to build a new backend route.

SKILL.md

2.3 KB, as published. Nobody here has run it

API Endpoint Scaffold

Create a new REST API endpoint following project conventions.

Inputs

  • Entity name (singular, e.g., comment)
  • Fields (name:type pairs, e.g., body:string, author_id:number)
  • Auth required? (boolean, defaults to true)
  • Nested under? (optional parent entity, e.g., post)

Steps

  1. Create the route file

    src/routes/{entity}.routes.ts
    
    • Define CRUD routes: GET /, GET /:id, POST /, PUT /:id, DELETE /:id
    • If nested: GET /{parent}s/:parentId/{entity}s
  2. Create the controller

    src/controllers/{entity}.controller.ts
    
    • One method per route
    • All responses use { data, error, meta } shape
    • Handle not-found with 404, validation with 422
  3. Create the validation schema

    src/validators/{entity}.validator.ts
    
    • Use Zod schemas matching the field definitions
    • Separate schemas for create vs. update (update = partial)
  4. Create the test file

    tests/api/{entity}.test.ts
    
    • Test each CRUD operation
    • Test validation (bad input returns 422)
    • Test auth (if required: 401 without token)
    • Use test factories for fixtures
  5. Register the route

    src/routes/index.ts
    
    • Add import + app.use('/{entity}s', {entity}Routes)
    • If auth required: add auth middleware

Conventions

  • Route paths are plural (/comments, not /comment)
  • File names are singular (comment.routes.ts)
  • All endpoints return { data, error, meta }
  • meta includes pagination for list endpoints
  • Auth middleware is applied at the route level, not controller level

Edge Cases

  • File upload endpoints: Add multer middleware, accept multipart/form-data
  • Nested routes: Parent ID is validated in middleware (404 if parent doesn't exist)
  • Soft delete: DELETE sets deleted_at timestamp, doesn't remove the row

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.