Back to results

Filtered result set

20 / 83 matches

SkillHub ClubBuild BackendBackend

wheels-api-generator

Generates RESTful API controllers for ColdFusion Wheels framework with proper HTTP status codes, JSON responses, and authentication middleware. Provides complete CRUD operations with error handling and validation.

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
201
Hot score
97
Updated
March 20, 2026
Overall rating
A7.8
Composite score
6.8
Best-practice grade
C68.4

Install command

npx @skill-hub/cli install wheels-dev-wheels-wheels-api-generator
api-generationcoldfusionrest-apicode-template

Repository

wheels-dev/wheels

Skill path: examples/tweet/.claude/skills/wheels-api-generator

Generates RESTful API controllers for ColdFusion Wheels framework with proper HTTP status codes, JSON responses, and authentication middleware. Provides complete CRUD operations with error handling and validation.

Open repository

Best for

Primary workflow: Build Backend.

Technical facets: Backend.

Target audience: ColdFusion developers using Wheels framework who need to quickly create REST APIs with standard conventions.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: wheels-dev.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install wheels-api-generator into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/wheels-dev/wheels before adding wheels-api-generator to shared team environments
  • Use wheels-api-generator for backend workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: Wheels API Generator
description: Generate RESTful API controllers with JSON responses, proper HTTP status codes, and API authentication. Use when creating API endpoints, JSON APIs, or web services. Ensures proper REST conventions and error handling.
---

# Wheels API Generator

## When to Use This Skill

Activate when:
- User requests to create an API
- User wants JSON endpoints
- User mentions: API, REST, JSON, endpoint, web service

## API Controller Template

```cfm
component extends="Controller" {

    function config() {
        provides("json");
        verifies(only="show,update,delete", params="key", paramsTypes="integer");
        filters(through="requireApiAuth");
    }

    function index() {
        resources = model("Resource").findAll(order="createdAt DESC");

        renderWith(
            data=resources,
            format="json",
            status=200
        );
    }

    function show() {
        resource = model("Resource").findByKey(key=params.key);

        if (!isObject(resource)) {
            renderWith(
                data={error="Resource not found"},
                format="json",
                status=404
            );
            return;
        }

        renderWith(
            data=resource,
            format="json",
            status=200
        );
    }

    function create() {
        resource = model("Resource").new(params.resource);

        if (resource.save()) {
            renderWith(
                data=resource,
                format="json",
                status=201,
                location=urlFor(action="show", key=resource.key())
            );
        } else {
            renderWith(
                data={errors=resource.allErrors()},
                format="json",
                status=422
            );
        }
    }

    function update() {
        resource = model("Resource").findByKey(key=params.key);

        if (!isObject(resource)) {
            renderWith(data={error="Not found"}, format="json", status=404);
            return;
        }

        if (resource.update(params.resource)) {
            renderWith(data=resource, format="json", status=200);
        } else {
            renderWith(data={errors=resource.allErrors()}, format="json", status=422);
        }
    }

    function delete() {
        resource = model("Resource").findByKey(key=params.key);

        if (!isObject(resource)) {
            renderWith(data={error="Not found"}, format="json", status=404);
            return;
        }

        resource.delete();
        renderWith(data={message="Deleted"}, format="json", status=204);
    }

    private function requireApiAuth() {
        var headers = getHTTPRequestData().headers;

        if (!structKeyExists(headers, "Authorization")) {
            renderWith(data={error="Unauthorized"}, format="json", status=401);
            abort;
        }

        // Validate API token
        var token = replace(headers.Authorization, "Bearer ", "");
        if (!isValidApiToken(token)) {
            renderWith(data={error="Invalid token"}, format="json", status=401);
            abort;
        }
    }

    private boolean function isValidApiToken(required string token) {
        // Token validation logic
        return true;
    }
}
```

## HTTP Status Codes

- **200 OK**: Successful GET, PUT, PATCH
- **201 Created**: Successful POST
- **204 No Content**: Successful DELETE
- **400 Bad Request**: Invalid request data
- **401 Unauthorized**: Missing/invalid authentication
- **403 Forbidden**: Insufficient permissions
- **404 Not Found**: Resource doesn't exist
- **422 Unprocessable Entity**: Validation errors
- **500 Internal Server Error**: Server error

---

**Generated by:** Wheels API Generator Skill v1.0
wheels-api-generator | SkillHub