[WIP]Generate swagger file
This commit is contained in:
		
							parent
							
								
									85b71c65ca
								
							
						
					
					
						commit
						e62b008c71
					
				
					 4 changed files with 74 additions and 0 deletions
				
			
		
							
								
								
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							|  | @ -5,3 +5,4 @@ | ||||||
| npm-debug.log | npm-debug.log | ||||||
| *.pem | *.pem | ||||||
| run.bat | run.bat | ||||||
|  | api-docs.json | ||||||
|  |  | ||||||
|  | @ -11,6 +11,7 @@ | ||||||
|   "scripts": { |   "scripts": { | ||||||
|     "config": "node ./init.js", |     "config": "node ./init.js", | ||||||
|     "start": "node ./built/index.js", |     "start": "node ./built/index.js", | ||||||
|  |     "swagger": "node ./swagger.js", | ||||||
|     "build": "gulp build", |     "build": "gulp build", | ||||||
|     "rebuild": "gulp rebuild", |     "rebuild": "gulp rebuild", | ||||||
|     "clean": "gulp clean", |     "clean": "gulp clean", | ||||||
|  | @ -120,6 +121,7 @@ | ||||||
|     "sortablejs": "1.5.0-rc1", |     "sortablejs": "1.5.0-rc1", | ||||||
|     "subdomain": "1.2.0", |     "subdomain": "1.2.0", | ||||||
|     "summaly": "1.2.7", |     "summaly": "1.2.7", | ||||||
|  |     "swagger-jsdoc": "^1.8.4", | ||||||
|     "syuilo-password-strength": "0.0.1", |     "syuilo-password-strength": "0.0.1", | ||||||
|     "syuilo-transformify": "0.1.2", |     "syuilo-transformify": "0.1.2", | ||||||
|     "tcp-port-used": "0.1.2", |     "tcp-port-used": "0.1.2", | ||||||
|  |  | ||||||
|  | @ -7,6 +7,36 @@ import * as uuid from 'uuid'; | ||||||
| import App from '../../../models/app'; | import App from '../../../models/app'; | ||||||
| import AuthSess from '../../../models/auth-session'; | import AuthSess from '../../../models/auth-session'; | ||||||
| 
 | 
 | ||||||
|  | /** | ||||||
|  |  * @swagger | ||||||
|  |  * /auth/session/generate: | ||||||
|  |  *   post: | ||||||
|  |  *     summary: Generate a session | ||||||
|  |  *     parameters: | ||||||
|  |  *       - | ||||||
|  |  *         name: app_secret | ||||||
|  |  *         in: formData | ||||||
|  |  *         required: true | ||||||
|  |  *         type: string | ||||||
|  |  *          | ||||||
|  |  *     responses: | ||||||
|  |  *       200: | ||||||
|  |  *         description: OK | ||||||
|  |  *         schema: | ||||||
|  |  *           type: object | ||||||
|  |  *           properties: | ||||||
|  |  *             token: | ||||||
|  |  *               type: string | ||||||
|  |  *               description: API Token | ||||||
|  |  *             url: | ||||||
|  |  *               type: string | ||||||
|  |  *               description: Callback URL | ||||||
|  |  *       400: | ||||||
|  |  *         description: Failed | ||||||
|  |  *         schema: | ||||||
|  |  *           $ref: "#/definitions/Error" | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
| /** | /** | ||||||
|  * Generate a session |  * Generate a session | ||||||
|  * |  * | ||||||
|  |  | ||||||
							
								
								
									
										41
									
								
								swagger.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								swagger.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,41 @@ | ||||||
|  | const swaggerJSDoc = require('swagger-jsdoc'); | ||||||
|  | const fs = require('fs'); | ||||||
|  | 
 | ||||||
|  | const apiRoot = './src/api/endpoints'; | ||||||
|  | const files = [ | ||||||
|  |   'auth/session/generate.js' | ||||||
|  | ]; | ||||||
|  | 
 | ||||||
|  | const errorDefinition = { | ||||||
|  |   'type': 'object', | ||||||
|  |   'properties':{ | ||||||
|  |     'error': { | ||||||
|  |       'type': 'string', | ||||||
|  |       'description': 'Error message' | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | }  | ||||||
|  | 
 | ||||||
|  | var options = { | ||||||
|  |   swaggerDefinition: { | ||||||
|  |     swagger: '2.0', | ||||||
|  |     info: { | ||||||
|  |       title: 'Misskey API', | ||||||
|  |       version: 'aoi', | ||||||
|  |     }, | ||||||
|  |     consumes: [ | ||||||
|  |       'application/x-www-form-urlencoded' | ||||||
|  |     ], | ||||||
|  |     produces: [ | ||||||
|  |       'application/json' | ||||||
|  |     ] | ||||||
|  |   }, | ||||||
|  |   apis: [] | ||||||
|  | }; | ||||||
|  | options.apis = files.map(c => {return `${apiRoot}/${c}`;}); | ||||||
|  | 
 | ||||||
|  | var swaggerSpec = swaggerJSDoc(options); | ||||||
|  | swaggerSpec.definitions.Error = errorDefinition; | ||||||
|  | 
 | ||||||
|  | fs.writeFileSync('api-docs.json', JSON.stringify(swaggerSpec)); | ||||||
|  | 
 | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue