diff --git a/swagger.js b/swagger.js index 1f430555a..9501c4eb3 100644 --- a/swagger.js +++ b/swagger.js @@ -11,32 +11,175 @@ const files = [ 'auth/session/userkey.js', ]; -const errorDefinition = { - 'type': 'object', - 'properties':{ - 'error': { - 'type': 'string', - 'description': 'Error message' +const defaultSwagger = { + "swagger": "2.0", + "info": { + "title": "Misskey API", + "version": "aoi" + }, + "host": "api.misskey.local", + "schemes": [ + "http" + ], + "consumes": [ + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json" + ], + "definitions": { + "Error": { + "type": "object", + "properties": { + "error": { + "type": "string", + "description": "Error message" + } + } + }, + "User": { + "type": "object", + "required": [ + "created_at", + "followers_count", + "following_count", + "id", + "liked_count", + "likes_count", + "name", + "posts_count", + "username" + ], + "properties": { + "avatar_id": { + "type": "string", + "description": "アバターに設定しているドライブのファイルのID" + }, + "avatar_url": { + "type": "string", + "description": "アバターURL" + }, + "banner_id": { + "type": "string", + "description": "バナーに設定しているドライブのファイルのID" + }, + "banner_url": { + "type": "string", + "description": "バナーURL" + }, + "bio": { + "type": "string", + "description": "プロフィール" + }, + "birthday": { + "type": "string", + "description": "誕生日" + }, + "created_at": { + "type": "string", + "format": "date", + "description": "アカウント作成日時" + }, + "drive_capacity": { + "type": "integer", + "description": "ドライブの最大容量" + }, + "followers_count": { + "type": "integer", + "description": "フォロワー数" + }, + "following_count": { + "type": "integer", + "description": "フォロー数" + }, + "id": { + "type": "string", + "description": "ユーザーID" + }, + "is_followed": { + "type": "boolean", + "description": "フォローされているか" + }, + "is_following": { + "type": "boolean", + "description": "フォローしているか" + }, + "liked_count": { + "type": "integer", + "description": "投稿にいいねされた数" + }, + "likes_count": { + "type": "integer", + "description": "投稿にいいねした数" + }, + "location": { + "type": "string", + "description": "場所" + }, + "name": { + "type": "string", + "description": "ニックネーム" + }, + "posts_count": { + "type": "integer", + "description": "投稿数" + }, + "username": { + "type": "string", + "description": "ユーザー名" + } + } + }, + "Application": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "format": "date", + "description": "アプリケーションの作成日時" + }, + "user_id": { + "type": "string", + "description": "アプリケーションを作成したユーザーのID" + }, + "name": { + "type": "string", + "description": "アプリケーションの名前" + }, + "description": { + "type": "string", + "description": "アプリケーションの説明" + }, + "permission": { + "type": "array", + "items": { + "type": "string" + }, + "description": "アプリケーションの持つ権限一覧" + }, + "callback_url": { + "type": "string", + "description": "コールバックURL" + }, + "id": { + "type": "string", + "description": "アプリケーションID" + }, + "icon_url": { + "type": "string", + "description": "アプリケーションのアイコンのURL" + } + } } - } -} + }, + "responses": {}, + "parameters": {}, + "securityDefinitions": {}, + "tags": [] +}; var options = { - swaggerDefinition: { - swagger: '2.0', - info: { - title: 'Misskey API', - version: 'aoi', - }, - host: 'api.misskey.xyz', - schemes: ['https'], - consumes: [ - 'application/x-www-form-urlencoded' - ], - produces: [ - 'application/json' - ] - }, + swaggerDefinition: defaultSwagger, apis: [] }; options.apis = files.map(c => {return `${apiRoot}/${c}`;}); @@ -48,7 +191,8 @@ if(fs.existsSync('.config/config.yml')){ } var swaggerSpec = swaggerJSDoc(options); -swaggerSpec.definitions.Error = errorDefinition; fs.writeFileSync('api-docs.json', JSON.stringify(swaggerSpec)); +console.log(JSON.stringify(swaggerSpec)); +