← Back to list

wheels-api-generator
by wheels-dev
An open source ColdFusion framework inspired by Ruby on Rails.
⭐ 200🍴 106📅 Jan 23, 2026
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
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
Score
Total Score
75/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
✓LICENSE
ライセンスが設定されている
+10
○説明文
100文字以上の説明がある
0/10
✓人気
GitHub Stars 100以上
+5
✓最近の活動
1ヶ月以内に更新
+10
✓フォーク
10回以上フォークされている
+5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
✓タグ
1つ以上のタグが設定されている
+5
Reviews
💬
Reviews coming soon
