[WIP]Generate swagger file

This commit is contained in:
Tosuke 2017-01-04 12:59:20 +09:00
parent 85b71c65ca
commit e62b008c71
4 changed files with 74 additions and 0 deletions

1
.gitignore vendored
View File

@ -5,3 +5,4 @@
npm-debug.log npm-debug.log
*.pem *.pem
run.bat run.bat
api-docs.json

View File

@ -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",

View File

@ -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
View 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));