diff --git a/CHANGELOG.md b/CHANGELOG.md index 051b68c239..1f52942914 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ - ### Server -- +- Fix: `/api-doc` にアクセスできない問題を修正 ## 2026.3.2 diff --git a/packages/backend/assets/api-doc.html b/packages/backend/assets/api-doc.html deleted file mode 100644 index 19e0349d47..0000000000 --- a/packages/backend/assets/api-doc.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - Misskey API - - - - - - - - - diff --git a/packages/backend/assets/api-doc.png b/packages/backend/assets/api-doc.png deleted file mode 100644 index 9b07f1f398..0000000000 Binary files a/packages/backend/assets/api-doc.png and /dev/null differ diff --git a/packages/backend/src/server/api/openapi/OpenApiServerService.ts b/packages/backend/src/server/api/openapi/OpenApiServerService.ts index f124aa9f39..24fc46e4ba 100644 --- a/packages/backend/src/server/api/openapi/OpenApiServerService.ts +++ b/packages/backend/src/server/api/openapi/OpenApiServerService.ts @@ -3,16 +3,14 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -import { fileURLToPath } from 'node:url'; import { Inject, Injectable } from '@nestjs/common'; import type { Config } from '@/config.js'; import { DI } from '@/di-symbols.js'; import { bindThis } from '@/decorators.js'; import { genOpenapiSpec } from './gen-spec.js'; +import { ApiDocPage } from './api-doc.js'; import type { FastifyInstance, FastifyPluginOptions } from 'fastify'; -const staticAssets = fileURLToPath(new URL('../../../../assets/', import.meta.url)); - @Injectable() export class OpenApiServerService { constructor( @@ -25,7 +23,8 @@ export class OpenApiServerService { public createServer(fastify: FastifyInstance, _options: FastifyPluginOptions, done: (err?: Error) => void) { fastify.get('/api-doc', async (_request, reply) => { reply.header('Cache-Control', 'public, max-age=86400'); - return await reply.sendFile('/api-doc.html', staticAssets); + reply.type('text/html; charset=utf-8'); + reply.send(await ApiDocPage()); }); fastify.get('/api.json', (_request, reply) => { reply.header('Cache-Control', 'public, max-age=600'); diff --git a/packages/backend/src/server/api/openapi/api-doc.tsx b/packages/backend/src/server/api/openapi/api-doc.tsx new file mode 100644 index 0000000000..663d9f5be3 --- /dev/null +++ b/packages/backend/src/server/api/openapi/api-doc.tsx @@ -0,0 +1,26 @@ +/* + * SPDX-FileCopyrightText: syuilo and misskey-project + * SPDX-License-Identifier: AGPL-3.0-only + */ + +export function ApiDocPage() { + return ( + <> + {''} + + + + Misskey API + + + + + + + + + + ); +}