Add default definition

This commit is contained in:
Tosuke 2017-01-05 18:52:15 +09:00
parent 1bbf4c1ece
commit 19beba1575

View File

@ -11,32 +11,175 @@ const files = [
'auth/session/userkey.js', 'auth/session/userkey.js',
]; ];
const errorDefinition = { const defaultSwagger = {
'type': 'object', "swagger": "2.0",
'properties':{ "info": {
'error': { "title": "Misskey API",
'type': 'string', "version": "aoi"
'description': 'Error message' },
"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 = { var options = {
swaggerDefinition: { swaggerDefinition: defaultSwagger,
swagger: '2.0',
info: {
title: 'Misskey API',
version: 'aoi',
},
host: 'api.misskey.xyz',
schemes: ['https'],
consumes: [
'application/x-www-form-urlencoded'
],
produces: [
'application/json'
]
},
apis: [] apis: []
}; };
options.apis = files.map(c => {return `${apiRoot}/${c}`;}); options.apis = files.map(c => {return `${apiRoot}/${c}`;});
@ -48,7 +191,8 @@ if(fs.existsSync('.config/config.yml')){
} }
var swaggerSpec = swaggerJSDoc(options); var swaggerSpec = swaggerJSDoc(options);
swaggerSpec.definitions.Error = errorDefinition;
fs.writeFileSync('api-docs.json', JSON.stringify(swaggerSpec)); fs.writeFileSync('api-docs.json', JSON.stringify(swaggerSpec));
console.log(JSON.stringify(swaggerSpec));