From 02c50e28f0b357662d74633070bdda334741f57c Mon Sep 17 00:00:00 2001 From: Matthew Berryman Date: Thu, 28 Jul 2016 14:53:23 +1000 Subject: [PATCH 1/2] Start on use of swagger for documenting API --- generateSwaggerAPI.js | 22 ++++++++++++++++++++++ index.js | 12 ++++++++++++ package.json | 2 ++ swagger-api.json | 1 + 4 files changed, 37 insertions(+) create mode 100644 generateSwaggerAPI.js create mode 100644 swagger-api.json diff --git a/generateSwaggerAPI.js b/generateSwaggerAPI.js new file mode 100644 index 0000000..7fc7711 --- /dev/null +++ b/generateSwaggerAPI.js @@ -0,0 +1,22 @@ +var swaggerJSDoc = require('swagger-jsdoc'); +var jsonfile = require('jsonfile'); + +var options = { + swaggerDefinition: { + info: { + title: 'Node-OpenDroneMap', // Title (required) + version: '0.1.0', // Version (required) + }, + }, + apis: ['./index.js'], // Path to the API docs +}; + +// Initialize swagger-jsdoc -> returns validated swagger spec in json format +var swaggerSpec = swaggerJSDoc(options); + +var file = 'swagger-api.json'; + +jsonfile.writeFile(file, swaggerSpec, function (err) { + console.error(err); + process.exit(1); +}); diff --git a/index.js b/index.js index 2f27e15..dbabe0e 100644 --- a/index.js +++ b/index.js @@ -160,6 +160,18 @@ let successHandler = res => { }; }; +/** + * @swagger + * /task/cancel/{uuidCheck}: + * get: + * description: Cancels a task + * parameters: + * - uuidCheck: uuid of the task to cancel + * responses: + * 200: + * description: Task cancelled + */ + app.post('/task/cancel', uuidCheck, (req, res) => { taskManager.cancel(req.body.uuid, successHandler(res)); }); diff --git a/package.json b/package.json index 4c60f86..b4119e8 100644 --- a/package.json +++ b/package.json @@ -24,11 +24,13 @@ "async": "^2.0.0-rc.6", "body-parser": "^1.15.2", "express": "^4.14.0", + "jsonfile": "^2.3.1", "morgan": "^1.7.0", "multer": "^1.1.0", "node-schedule": "^1.1.1", "node-uuid": "^1.4.7", "rimraf": "^2.5.3", + "swagger-jsdoc": "^1.3.1", "winston": "^2.2.0" }, "devDependencies": { diff --git a/swagger-api.json b/swagger-api.json new file mode 100644 index 0000000..d1306b8 --- /dev/null +++ b/swagger-api.json @@ -0,0 +1 @@ +{"info":{"title":"Node-OpenDroneMap","version":"0.1.0"},"swagger":"2.0","paths":{"/task/cancel/{uuidCheck}":{"get":{"description":"Cancels a task","parameters":[{"uuidCheck":"uuid of the task to cancel"}],"responses":{"200":{"description":"Task cancelled"}}}}},"definitions":{},"responses":{},"parameters":{},"securityDefinitions":{},"tags":[]} From 047517460a0a9f9469f13df191d8ae3beaaedf29 Mon Sep 17 00:00:00 2001 From: Matthew Berryman Date: Thu, 28 Jul 2016 14:58:15 +1000 Subject: [PATCH 2/2] run pretty-json over api json --- swagger-api.json | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/swagger-api.json b/swagger-api.json index d1306b8..79e18df 100644 --- a/swagger-api.json +++ b/swagger-api.json @@ -1 +1,29 @@ -{"info":{"title":"Node-OpenDroneMap","version":"0.1.0"},"swagger":"2.0","paths":{"/task/cancel/{uuidCheck}":{"get":{"description":"Cancels a task","parameters":[{"uuidCheck":"uuid of the task to cancel"}],"responses":{"200":{"description":"Task cancelled"}}}}},"definitions":{},"responses":{},"parameters":{},"securityDefinitions":{},"tags":[]} +{ + "info": { + "title": "Node-OpenDroneMap", + "version": "0.1.0" + }, + "swagger": "2.0", + "paths": { + "/task/cancel/{uuidCheck}": { + "get": { + "description": "Cancels a task", + "parameters": [ + { + "uuidCheck": "uuid of the task to cancel" + } + ], + "responses": { + "200": { + "description": "Task cancelled" + } + } + } + } + }, + "definitions": {}, + "responses": {}, + "parameters": {}, + "securityDefinitions": {}, + "tags": [] +}