Add default definition
This commit is contained in:
		
							parent
							
								
									08aeaf6c64
								
							
						
					
					
						commit
						25b5456a32
					
				
					 1 changed files with 168 additions and 24 deletions
				
			
		
							
								
								
									
										192
									
								
								swagger.js
									
										
									
									
									
								
							
							
						
						
									
										192
									
								
								swagger.js
									
										
									
									
									
								
							|  | @ -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)); | ||||||
|  | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue