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
+
+
+
+
+
+
+
+
+ >
+ );
+}