diff options
Diffstat (limited to 'src/server/api/openapi')
| -rw-r--r-- | src/server/api/openapi/description.ts | 20 | ||||
| -rw-r--r-- | src/server/api/openapi/gen-spec.ts | 9 |
2 files changed, 24 insertions, 5 deletions
diff --git a/src/server/api/openapi/description.ts b/src/server/api/openapi/description.ts index 04a0b4c719..b801c86387 100644 --- a/src/server/api/openapi/description.ts +++ b/src/server/api/openapi/description.ts @@ -1,6 +1,14 @@ import config from '../../../config'; +import { IKindInfo, kinds } from '../kinds'; + +export function getDescription(lang = 'ja-JP'): string { + const permissionTable = (Object.entries(kinds()) as [string, IKindInfo][]) + .map(e => `|${e[0]}|${e[1].descs[lang]}|${e[1].endpoints.map(f => `[${f}](#operation/${f})`).join(', ')}|`) + .join('\n'); + + const descriptions = { + 'ja-JP': `**Misskey is a decentralized microblogging platform.** -export const description = ` ## Usage **APIはすべてPOSTでリクエスト/レスポンスともにJSON形式です。** 一部のAPIはリクエストに認証情報(APIキー)が必要です。リクエストの際に\`i\`というパラメータでAPIキーを添付してください。 @@ -44,4 +52,12 @@ APIキーの生成方法を擬似コードで表すと次のようになりま \`\`\` js const i = sha256(userToken + secretKey); \`\`\` -`; + +## Permissions +|Permisson (kind)|Description|Endpoints| +|:--|:--|:--| +${permissionTable} +` + } as { [x: string]: string }; + return lang in descriptions ? descriptions[lang] : descriptions['ja-JP']; +} diff --git a/src/server/api/openapi/gen-spec.ts b/src/server/api/openapi/gen-spec.ts index 915fb5a6a3..d194c6c8a8 100644 --- a/src/server/api/openapi/gen-spec.ts +++ b/src/server/api/openapi/gen-spec.ts @@ -3,7 +3,7 @@ import { Context } from 'cafy'; import config from '../../../config'; import { errors as basicErrors } from './errors'; import { schemas } from './schemas'; -import { description } from './description'; +import { getDescription } from './description'; import { convertOpenApiSchema } from '../../../misc/schema'; export function genOpenapiSpec(lang = 'ja-JP') { @@ -13,7 +13,7 @@ export function genOpenapiSpec(lang = 'ja-JP') { info: { version: 'v1', title: 'Misskey API', - description: '**Misskey is a decentralized microblogging platform.**\n\n' + description, + description: getDescription(lang), 'x-logo': { url: '/assets/api-doc.png' } }, @@ -110,7 +110,10 @@ export function genOpenapiSpec(lang = 'ja-JP') { let desc = (endpoint.meta.desc ? endpoint.meta.desc[lang] : 'No description provided.') + '\n\n'; desc += `**Credential required**: *${endpoint.meta.requireCredential ? 'Yes' : 'No'}*`; - if (endpoint.meta.kind) desc += ` / **Permission**: *${endpoint.meta.kind}*`; + if (endpoint.meta.kind) { + const kind = endpoint.meta.kind; + desc += ` / **Permission**: *${kind}*`; + } const info = { operationId: endpoint.name, |