mirror of
https://activitypub.software/TransFem-org/Sharkey
synced 2024-11-25 15:35:12 +00:00
[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…
Reference in a new issue