Files
NianAIGC/app/api/v1/openapi.json/route.ts
2026-05-29 12:32:02 +08:00

48 lines
1.8 KiB
TypeScript

import { jsonOk } from "@/lib/server/api";
export const runtime = "nodejs";
export async function GET() {
return jsonOk({
openapi: "3.1.0",
info: {
title: "智念AIGC平台 Public API",
version: "1.0.0"
},
security: [{ bearerApiKey: [] }, { headerApiKey: [] }],
components: {
securitySchemes: {
bearerApiKey: { type: "http", scheme: "bearer" },
headerApiKey: { type: "apiKey", in: "header", name: "X-Zhinian-Api-Key" }
}
},
paths: {
"/api/v1/capabilities": {
get: { summary: "List generation capabilities", responses: { "200": { description: "Capabilities" } } }
},
"/api/v1/assets": {
get: { summary: "List assets", responses: { "200": { description: "Assets" } } },
post: { summary: "Upload files or register an external asset URL", responses: { "201": { description: "Created asset" } } }
},
"/api/v1/jobs": {
get: { summary: "List jobs", responses: { "200": { description: "Jobs" } } },
post: { summary: "Create a queued generation job", responses: { "202": { description: "Queued job" }, "409": { description: "Idempotency conflict" } } }
},
"/api/v1/jobs/{id}": {
get: {
summary: "Get one job",
parameters: [{ name: "id", in: "path", required: true, schema: { type: "string" } }],
responses: { "200": { description: "Job" }, "404": { description: "Not found" } }
}
},
"/api/v1/jobs/{id}/cancel": {
post: {
summary: "Cancel a queued or running job",
parameters: [{ name: "id", in: "path", required: true, schema: { type: "string" } }],
responses: { "200": { description: "Cancelled job" }, "404": { description: "Not found" } }
}
}
}
});
}