Introduce OpenAPI specs (#4351)

* wip

* wip

* wip

* Update index.ts

* Update gen-openapi-spec.ts

* Update api.ja-JP.md

* Fix

* Improve doc

* Update gen-openapi-spec.ts

* Update redoc.html

* Improve doc

* Update gen-openapi-spec.ts

* Improve doc

* Update CHANGELOG.md
This commit is contained in:
syuilo
2019-02-23 11:20:58 +09:00
committed by GitHub
parent 68a6758302
commit 52774bbe64
173 changed files with 1091 additions and 876 deletions

View File

@ -4,6 +4,8 @@ import Report, { packMany } from '../../../../models/abuse-user-report';
import define from '../../define';
export const meta = {
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -4,6 +4,8 @@ import define from '../../../define';
import { fallback } from '../../../../../prelude/symbol';
export const meta = {
tags: ['admin'],
requireCredential: false,
requireModerator: true,

View File

@ -5,6 +5,8 @@ import DriveFile from '../../../../../models/drive-file';
import { ApiError } from '../../../error';
export const meta = {
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -7,6 +7,8 @@ export const meta = {
'ja-JP': 'カスタム絵文字を追加します。'
},
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -7,6 +7,8 @@ export const meta = {
'ja-JP': 'カスタム絵文字を取得します。'
},
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -8,6 +8,8 @@ export const meta = {
'ja-JP': 'カスタム絵文字を削除します。'
},
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -8,6 +8,8 @@ export const meta = {
'ja-JP': 'カスタム絵文字を更新します。'
},
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -5,6 +5,8 @@ import User from '../../../../../models/user';
import deleteFollowing from '../../../../../services/following/delete';
export const meta = {
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -3,6 +3,8 @@ import define from '../../../define';
import Instance from '../../../../../models/instance';
export const meta = {
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -7,6 +7,8 @@ export const meta = {
'ja-JP': '招待コードを発行します。'
},
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -9,6 +9,8 @@ export const meta = {
'en-US': 'Mark a user as moderator.'
},
tags: ['admin'],
requireCredential: true,
requireAdmin: true,

View File

@ -9,6 +9,8 @@ export const meta = {
'en-US': 'Unmark a user as moderator.'
},
tags: ['admin'],
requireCredential: true,
requireAdmin: true,

View File

@ -2,6 +2,8 @@ import define from '../../../define';
import { destroy } from '../../../../../queue';
export const meta = {
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -4,6 +4,8 @@ import define from '../../define';
import AbuseUserReport from '../../../../models/abuse-user-report';
export const meta = {
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -10,6 +10,8 @@ export const meta = {
'ja-JP': '指定したユーザーのパスワードをリセットします。',
},
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -8,6 +8,8 @@ export const meta = {
'ja-JP': '指定したユーザーの情報を取得します。',
},
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -4,6 +4,8 @@ import define from '../../define';
import { fallback } from '../../../../prelude/symbol';
export const meta = {
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -9,6 +9,8 @@ export const meta = {
'en-US': 'Make silence a user.'
},
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -9,6 +9,8 @@ export const meta = {
'en-US': 'Suspend a user.'
},
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -9,6 +9,8 @@ export const meta = {
'en-US': 'Unsilence a user.'
},
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -9,6 +9,8 @@ export const meta = {
'en-US': 'Unsuspend a user.'
},
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -9,6 +9,8 @@ export const meta = {
'en-US': 'Mark a user as unverified.'
},
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -7,6 +7,8 @@ export const meta = {
'ja-JP': 'インスタンスの設定を更新します。'
},
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -11,6 +11,8 @@ export const meta = {
'en-US': 'Update specified remote user information.'
},
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -9,6 +9,8 @@ export const meta = {
'en-US': 'Mark a user as verified.'
},
tags: ['admin'],
requireCredential: true,
requireModerator: true,

View File

@ -3,6 +3,8 @@ import define from '../../define';
import fetchMeta from '../../../../misc/fetch-meta';
export const meta = {
tags: ['hashtags'],
requireCredential: false,
};

View File

@ -10,6 +10,8 @@ import Resolver from '../../../../remote/activitypub/resolver';
import { ApiError } from '../../error';
export const meta = {
tags: ['federation'],
desc: {
'ja-JP': 'URIを指定してActivityPubオブジェクトを参照します。'
},

View File

@ -4,6 +4,8 @@ import App, { pack } from '../../../../models/app';
import define from '../../define';
export const meta = {
tags: ['app'],
requireCredential: false,
params: {

View File

@ -5,6 +5,8 @@ import define from '../../define';
import { ApiError } from '../../error';
export const meta = {
tags: ['app'],
params: {
appId: {
validator: $.type(ID),

View File

@ -8,6 +8,8 @@ import define from '../../define';
import { ApiError } from '../../error';
export const meta = {
tags: ['auth'],
requireCredential: true,
secure: true,

View File

@ -7,6 +7,8 @@ import define from '../../../define';
import { ApiError } from '../../../error';
export const meta = {
tags: ['auth'],
requireCredential: false,
params: {

View File

@ -4,6 +4,8 @@ import define from '../../../define';
import { ApiError } from '../../../error';
export const meta = {
tags: ['auth'],
requireCredential: false,
params: {

View File

@ -7,6 +7,8 @@ import define from '../../../define';
import { ApiError } from '../../../error';
export const meta = {
tags: ['auth'],
requireCredential: false,
params: {

View File

@ -16,6 +16,8 @@ export const meta = {
'en-US': 'Block a user.'
},
tags: ['blocking', 'users'],
limit: {
duration: ms('1hour'),
max: 100

View File

@ -16,6 +16,8 @@ export const meta = {
'en-US': 'Unblock a user.'
},
tags: ['blocking', 'users'],
limit: {
duration: ms('1hour'),
max: 100

View File

@ -9,6 +9,8 @@ export const meta = {
'en-US': 'Get blocking users.'
},
tags: ['blocking', 'account'],
requireCredential: true,
kind: 'following-read',

View File

@ -9,6 +9,8 @@ export const meta = {
'ja-JP': 'アクティブユーザーのチャートを取得します。'
},
tags: ['charts', 'users'],
params: {
span: {
validator: $.str.or(['day', 'hour']),
@ -24,7 +26,14 @@ export const meta = {
'ja-JP': '最大数。例えば 30 を指定したとすると、スパンが"day"の場合は30日分のデータが、スパンが"hour"の場合は30時間分のデータが返ります。'
}
},
}
},
res: {
type: 'array',
items: {
type: 'object',
},
},
};
export default define(meta, async (ps) => {

View File

@ -9,6 +9,8 @@ export const meta = {
'ja-JP': 'ドライブのチャートを取得します。'
},
tags: ['charts', 'drive'],
params: {
span: {
validator: $.str.or(['day', 'hour']),
@ -24,7 +26,14 @@ export const meta = {
'ja-JP': '最大数。例えば 30 を指定したとすると、スパンが"day"の場合は30日分のデータが、スパンが"hour"の場合は30時間分のデータが返ります。'
}
},
}
},
res: {
type: 'array',
items: {
type: 'object',
},
},
};
export default define(meta, async (ps) => {

View File

@ -9,6 +9,8 @@ export const meta = {
'ja-JP': 'フェデレーションのチャートを取得します。'
},
tags: ['charts'],
params: {
span: {
validator: $.str.or(['day', 'hour']),
@ -24,7 +26,14 @@ export const meta = {
'ja-JP': '最大数。例えば 30 を指定したとすると、スパンが"day"の場合は30日分のデータが、スパンが"hour"の場合は30時間分のデータが返ります。'
}
},
}
},
res: {
type: 'array',
items: {
type: 'object',
},
},
};
export default define(meta, async (ps) => {

View File

@ -9,6 +9,8 @@ export const meta = {
'ja-JP': 'ハッシュタグごとのチャートを取得します。'
},
tags: ['charts', 'hashtags'],
params: {
span: {
validator: $.str.or(['day', 'hour']),
@ -31,7 +33,14 @@ export const meta = {
'ja-JP': '対象のハッシュタグ'
}
},
}
},
res: {
type: 'array',
items: {
type: 'object',
},
},
};
export default define(meta, async (ps) => {

View File

@ -9,6 +9,8 @@ export const meta = {
'ja-JP': 'インスタンスごとのチャートを取得します。'
},
tags: ['charts'],
params: {
span: {
validator: $.str.or(['day', 'hour']),
@ -32,7 +34,14 @@ export const meta = {
'en-US': 'Target instance host'
}
}
}
},
res: {
type: 'array',
items: {
type: 'object',
},
},
};
export default define(meta, async (ps) => {

View File

@ -9,6 +9,8 @@ export const meta = {
'ja-JP': 'ネットワークのチャートを取得します。'
},
tags: ['charts'],
params: {
span: {
validator: $.str.or(['day', 'hour']),
@ -24,7 +26,14 @@ export const meta = {
'ja-JP': '最大数。例えば 30 を指定したとすると、スパンが"day"の場合は30日分のデータが、スパンが"hour"の場合は30時間分のデータが返ります。'
}
},
}
},
res: {
type: 'array',
items: {
type: 'object',
},
},
};
export default define(meta, async (ps) => {

View File

@ -9,6 +9,8 @@ export const meta = {
'ja-JP': '投稿のチャートを取得します。'
},
tags: ['charts', 'notes'],
params: {
span: {
validator: $.str.or(['day', 'hour']),
@ -24,7 +26,14 @@ export const meta = {
'ja-JP': '最大数。例えば 30 を指定したとすると、スパンが"day"の場合は30日分のデータが、スパンが"hour"の場合は30時間分のデータが返ります。'
}
},
}
},
res: {
type: 'array',
items: {
type: 'object',
},
},
};
export default define(meta, async (ps) => {

View File

@ -10,6 +10,8 @@ export const meta = {
'ja-JP': 'ユーザーごとのドライブのチャートを取得します。'
},
tags: ['charts', 'drive', 'users'],
params: {
span: {
validator: $.str.or(['day', 'hour']),
@ -34,7 +36,14 @@ export const meta = {
'en-US': 'Target user ID'
}
}
}
},
res: {
type: 'array',
items: {
type: 'object',
},
},
};
export default define(meta, async (ps) => {

View File

@ -10,6 +10,8 @@ export const meta = {
'ja-JP': 'ユーザーごとのフォロー/フォロワーのチャートを取得します。'
},
tags: ['charts', 'users', 'following'],
params: {
span: {
validator: $.str.or(['day', 'hour']),
@ -34,7 +36,14 @@ export const meta = {
'en-US': 'Target user ID'
}
}
}
},
res: {
type: 'array',
items: {
type: 'object',
},
},
};
export default define(meta, async (ps) => {

View File

@ -10,6 +10,8 @@ export const meta = {
'ja-JP': 'ユーザーごとの投稿のチャートを取得します。'
},
tags: ['charts', 'users', 'notes'],
params: {
span: {
validator: $.str.or(['day', 'hour']),
@ -34,7 +36,14 @@ export const meta = {
'en-US': 'Target user ID'
}
}
}
},
res: {
type: 'array',
items: {
type: 'object',
},
},
};
export default define(meta, async (ps) => {

View File

@ -10,6 +10,8 @@ export const meta = {
'ja-JP': 'ユーザーごとの被リアクション数のチャートを取得します。'
},
tags: ['charts', 'users', 'reactions'],
params: {
span: {
validator: $.str.or(['day', 'hour']),
@ -34,7 +36,14 @@ export const meta = {
'en-US': 'Target user ID'
}
}
}
},
res: {
type: 'array',
items: {
type: 'object',
},
},
};
export default define(meta, async (ps) => {

View File

@ -9,6 +9,8 @@ export const meta = {
'ja-JP': 'ユーザーのチャートを取得します。'
},
tags: ['charts', 'users'],
params: {
span: {
validator: $.str.or(['day', 'hour']),
@ -24,7 +26,14 @@ export const meta = {
'ja-JP': '最大数。例えば 30 を指定したとすると、スパンが"day"の場合は30日分のデータが、スパンが"hour"の場合は30時間分のデータが返ります。'
}
},
}
},
res: {
type: 'array',
items: {
type: 'object',
},
},
};
export default define(meta, async (ps) => {

View File

@ -8,6 +8,8 @@ export const meta = {
'en-US': 'Get drive information.'
},
tags: ['drive', 'account'],
requireCredential: true,
kind: 'drive-read'

View File

@ -9,6 +9,8 @@ export const meta = {
'en-US': 'Get files of drive.'
},
tags: ['drive'],
requireCredential: true,
kind: 'drive-read',
@ -38,7 +40,14 @@ export const meta = {
type: {
validator: $.optional.str.match(/^[a-zA-Z\/\-\*]+$/)
}
}
},
res: {
type: 'array',
items: {
type: 'DriveFile',
},
},
};
export default define(meta, async (ps, user) => {

View File

@ -13,6 +13,8 @@ export const meta = {
'en-US': 'Get the notes that specified file of drive attached.'
},
tags: ['drive', 'notes'],
requireCredential: true,
kind: 'drive-read',

View File

@ -8,6 +8,8 @@ export const meta = {
'en-US': 'Returns whether the file with the given MD5 hash exists in the user\'s drive.'
},
tags: ['drive'],
requireCredential: true,
kind: 'drive-read',

View File

@ -13,6 +13,8 @@ export const meta = {
'en-US': 'Upload a file to drive.'
},
tags: ['drive'],
requireCredential: true,
limit: {
@ -35,7 +37,7 @@ export const meta = {
},
isSensitive: {
validator: $.optional.or($.bool, $.str),
validator: $.optional.either($.bool, $.str),
default: false,
transform: (v: any): boolean => v === true || v === 'true',
desc: {
@ -45,7 +47,7 @@ export const meta = {
},
force: {
validator: $.optional.or($.bool, $.str),
validator: $.optional.either($.bool, $.str),
default: false,
transform: (v: any): boolean => v === true || v === 'true',
desc: {
@ -54,6 +56,10 @@ export const meta = {
}
},
res: {
type: 'DriveFile',
},
errors: {
invalidFileName: {
message: 'Invalid file name.',

View File

@ -14,6 +14,8 @@ export const meta = {
'en-US': 'Delete a file of drive.'
},
tags: ['drive'],
requireCredential: true,
kind: 'drive-write',

View File

@ -6,6 +6,8 @@ import define from '../../../define';
export const meta = {
requireCredential: true,
tags: ['drive'],
kind: 'drive-read',
params: {

View File

@ -14,6 +14,8 @@ export const meta = {
'en-US': 'Get specified file of drive.'
},
tags: ['drive'],
requireCredential: true,
kind: 'drive-read',
@ -37,6 +39,10 @@ export const meta = {
}
},
res: {
type: 'DriveFile',
},
errors: {
noSuchFile: {
message: 'No such file.',

View File

@ -13,6 +13,8 @@ export const meta = {
'en-US': 'Update specified file of drive.'
},
tags: ['drive'],
requireCredential: true,
kind: 'drive-write',

View File

@ -10,6 +10,8 @@ export const meta = {
'ja-JP': 'ドライブに指定されたURLに存在するファイルをアップロードします。'
},
tags: ['drive'],
limit: {
duration: ms('1hour'),
max: 60

View File

@ -9,6 +9,8 @@ export const meta = {
'en-US': 'Get folders of drive.'
},
tags: ['drive'],
requireCredential: true,
kind: 'drive-read',

View File

@ -13,6 +13,8 @@ export const meta = {
'en-US': 'Create a folder of drive.'
},
tags: ['drive'],
requireCredential: true,
kind: 'drive-write',

View File

@ -14,6 +14,8 @@ export const meta = {
'en-US': 'Delete specified folder of drive.'
},
tags: ['drive'],
requireCredential: true,
kind: 'drive-write',

View File

@ -4,6 +4,8 @@ import DriveFolder, { pack } from '../../../../../models/drive-folder';
import define from '../../../define';
export const meta = {
tags: ['drive'],
requireCredential: true,
kind: 'drive-read',

View File

@ -12,6 +12,8 @@ export const meta = {
'en-US': 'Get specified folder of drive.'
},
tags: ['drive'],
requireCredential: true,
kind: 'drive-read',

View File

@ -13,6 +13,8 @@ export const meta = {
'en-US': 'Update specified folder of drive.'
},
tags: ['drive'],
requireCredential: true,
kind: 'drive-write',

View File

@ -4,6 +4,8 @@ import DriveFile, { packMany } from '../../../../models/drive-file';
import define from '../../define';
export const meta = {
tags: ['drive'],
requireCredential: true,
kind: 'drive-read',

View File

@ -3,6 +3,8 @@ import define from '../../define';
import Instance from '../../../../models/instance';
export const meta = {
tags: ['federation'],
requireCredential: false,
params: {

View File

@ -3,6 +3,8 @@ import define from '../../define';
import Instance from '../../../../models/instance';
export const meta = {
tags: ['federation'],
requireCredential: false,
params: {

View File

@ -16,6 +16,8 @@ export const meta = {
'en-US': 'Follow a user.'
},
tags: ['following', 'users'],
limit: {
duration: ms('1hour'),
max: 100

View File

@ -16,6 +16,8 @@ export const meta = {
'en-US': 'Unfollow a user.'
},
tags: ['following', 'users'],
limit: {
duration: ms('1hour'),
max: 100

View File

@ -11,6 +11,8 @@ export const meta = {
'en-US': 'Accept a follow request.'
},
tags: ['following', 'account'],
requireCredential: true,
kind: 'following-write',

View File

@ -12,6 +12,8 @@ export const meta = {
'en-US': 'Cancel a follow request.'
},
tags: ['following', 'account'],
requireCredential: true,
kind: 'following-write',

View File

@ -7,6 +7,8 @@ export const meta = {
'en-US': 'Get all pending received follow requests.'
},
tags: ['following', 'account'],
requireCredential: true,
kind: 'following-read'

View File

@ -11,6 +11,8 @@ export const meta = {
'en-US': 'Reject a follow request.'
},
tags: ['following', 'account'],
requireCredential: true,
kind: 'following-write',

View File

@ -4,6 +4,8 @@ import ReversiGame, { pack } from '../../../../../models/games/reversi/game';
import define from '../../../define';
export const meta = {
tags: ['games'],
params: {
limit: {
validator: $.optional.num.range(1, 100),

View File

@ -6,6 +6,8 @@ import define from '../../../../define';
import { ApiError } from '../../../../error';
export const meta = {
tags: ['games'],
params: {
gameId: {
validator: $.type(ID),

View File

@ -6,6 +6,8 @@ import define from '../../../../define';
import { ApiError } from '../../../../error';
export const meta = {
tags: ['games'],
desc: {
'ja-JP': '指定したリバーシの対局で投了します。'
},

View File

@ -2,6 +2,8 @@ import Matching, { pack as packMatching } from '../../../../../models/games/reve
import define from '../../../define';
export const meta = {
tags: ['games'],
requireCredential: true
};

View File

@ -9,6 +9,8 @@ import { ApiError } from '../../../error';
import { getUser } from '../../../common/getters';
export const meta = {
tags: ['games'],
requireCredential: true,
params: {

View File

@ -2,6 +2,8 @@ import Matching from '../../../../../../models/games/reversi/matching';
import define from '../../../../define';
export const meta = {
tags: ['games'],
requireCredential: true
};

View File

@ -3,6 +3,8 @@ import define from '../../define';
import Hashtag from '../../../../models/hashtag';
export const meta = {
tags: ['hashtags'],
requireCredential: false,
params: {

View File

@ -8,6 +8,8 @@ export const meta = {
'ja-JP': 'ハッシュタグを検索します。'
},
tags: ['hashtags'],
requireCredential: false,
params: {

View File

@ -16,6 +16,8 @@ const requiredUsers = 3; // 最低何人がそのタグを投稿している必
const max = 5;
export const meta = {
tags: ['hashtags'],
requireCredential: false,
};

View File

@ -5,6 +5,8 @@ import define from '../../define';
export const meta = {
requireCredential: false,
tags: ['hashtags', 'users'],
params: {
tag: {
validator: $.str,

View File

@ -8,6 +8,8 @@ export const meta = {
'ja-JP': '自分のアカウント情報を取得します。'
},
tags: ['account'],
requireCredential: true,
params: {},

View File

@ -2,6 +2,8 @@ import User from '../../../../models/user';
import define from '../../define';
export const meta = {
tags: ['account', 'following'],
requireCredential: true,
kind: 'account-write',

View File

@ -9,6 +9,8 @@ export const meta = {
'en-US': 'Get favorited notes'
},
tags: ['account', 'notes', 'favorites'],
requireCredential: true,
kind: 'favorites-read',

View File

@ -13,6 +13,8 @@ export const meta = {
'en-US': 'Get notifications.'
},
tags: ['account', 'notifications'],
requireCredential: true,
kind: 'account-read',

View File

@ -12,6 +12,8 @@ export const meta = {
'ja-JP': '指定した投稿をピン留めします。'
},
tags: ['account', 'notes'],
requireCredential: true,
kind: 'account-write',

View File

@ -9,6 +9,8 @@ export const meta = {
'en-US': 'Mark all talk messages as read.'
},
tags: ['account', 'messaging'],
requireCredential: true,
kind: 'account-write',

View File

@ -9,6 +9,8 @@ export const meta = {
'en-US': 'Mark all messages as read.'
},
tags: ['account'],
requireCredential: true,
kind: 'account-write',

View File

@ -12,6 +12,8 @@ export const meta = {
'ja-JP': '指定した投稿のピン留めを解除します。'
},
tags: ['account', 'notes'],
requireCredential: true,
kind: 'account-write',

View File

@ -20,6 +20,8 @@ export const meta = {
'en-US': 'Update myself'
},
tags: ['account'],
requireCredential: true,
kind: 'account-write',

View File

@ -9,6 +9,8 @@ export const meta = {
'en-US': 'Show messaging history.'
},
tags: ['messaging'],
requireCredential: true,
kind: 'messaging-read',

View File

@ -13,6 +13,8 @@ export const meta = {
'en-US': 'Get messages of messaging.'
},
tags: ['messaging'],
requireCredential: true,
kind: 'messaging-read',

View File

@ -19,6 +19,8 @@ export const meta = {
'en-US': 'Create a message of messaging.'
},
tags: ['messaging'],
requireCredential: true,
kind: 'messaging-write',

View File

@ -14,6 +14,8 @@ export const meta = {
'en-US': 'Delete a message.'
},
tags: ['messaging'],
requireCredential: true,
kind: 'messaging-write',

View File

@ -11,6 +11,8 @@ export const meta = {
'en-US': 'Mark as read a message of messaging.'
},
tags: ['messaging'],
requireCredential: true,
kind: 'messaging-write',

View File

@ -14,6 +14,8 @@ export const meta = {
'en-US': 'Get the information of this instance.'
},
tags: ['meta'],
requireCredential: false,
params: {

View File

@ -11,6 +11,8 @@ export const meta = {
'en-US': 'Mute a user'
},
tags: ['mute', 'users'],
requireCredential: true,
kind: 'account/write',

View File

@ -11,6 +11,8 @@ export const meta = {
'en-US': 'Unmute a user'
},
tags: ['mute', 'users'],
requireCredential: true,
kind: 'account/write',

Some files were not shown because too many files have changed in this diff Show More