From ecf131b26d0a1ed0d1bc4bccc77484c3a6805463 Mon Sep 17 00:00:00 2001 From: Michael Mrowetz Date: Thu, 29 Dec 2016 15:48:49 +0900 Subject: [PATCH 1/3] Add swagger-restify-mw --- swagger-node-runner/index.d.ts | 3 +- .../swagger-node-runner-tests.ts | 17 +++++++ swagger-restify-mw/index.d.ts | 47 +++++++++++++++++++ .../swagger-restify-mw-tests.ts | 43 +++++++++++++++++ swagger-restify-mw/tsconfig.json | 20 ++++++++ swagger-restify-mw/tslint.json | 1 + 6 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 swagger-restify-mw/index.d.ts create mode 100644 swagger-restify-mw/swagger-restify-mw-tests.ts create mode 100644 swagger-restify-mw/tsconfig.json create mode 100644 swagger-restify-mw/tslint.json diff --git a/swagger-node-runner/index.d.ts b/swagger-node-runner/index.d.ts index 13962ccfb8..61880b3f8d 100644 --- a/swagger-node-runner/index.d.ts +++ b/swagger-node-runner/index.d.ts @@ -34,6 +34,7 @@ import { Express, NextFunction } from "express"; import { Spec } from "swagger-schema-official"; import { EventEmitter } from "events"; import * as Hapi from "hapi"; +import * as Restify from "restify"; /** * Config object for SwaggerNodeRunner @@ -258,7 +259,7 @@ export interface HapiMiddleware extends Middleware { /** Restify specific Middleware */ export interface RestifyMiddleware extends Middleware { /** Register this Middleware with `app` */ - register: (app: any) => void; + register: (app: Restify.Server) => void; } diff --git a/swagger-node-runner/swagger-node-runner-tests.ts b/swagger-node-runner/swagger-node-runner-tests.ts index 73306f2f72..04b0f56bb8 100644 --- a/swagger-node-runner/swagger-node-runner-tests.ts +++ b/swagger-node-runner/swagger-node-runner-tests.ts @@ -1,6 +1,7 @@ import * as SwaggerNodeRunner from "swagger-node-runner"; import * as express from "express"; import * as Hapi from "hapi"; +import * as restify from "restify"; let config: SwaggerNodeRunner.Config = { appRoot: __dirname @@ -45,6 +46,22 @@ SwaggerNodeRunner.create(config, function(err, runner) { }); +// Restify Middelware + +let app = restify.createServer(); +SwaggerNodeRunner.create(config, function(err, runner) { +// SwaggerRestify.create(config, function(err, swaggerRestify) { + if (err) { throw err; } + + let restifyMiddelware = runner.restifyMiddleware() + + restifyMiddelware.register(app); + + let port = process.env.PORT || 10010; + app.listen(port); +}); + + let swaggerSecurityHandlerCb = (err: Error) => { //do nothing }; diff --git a/swagger-restify-mw/index.d.ts b/swagger-restify-mw/index.d.ts new file mode 100644 index 0000000000..c9518b2ecb --- /dev/null +++ b/swagger-restify-mw/index.d.ts @@ -0,0 +1,47 @@ +// Type definitions for swagger-restify-mw 0.7 +// Project: https://github.com/apigee-127/swagger-restify#readme +// Definitions by: Michael Mrowetz +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/* =================== USAGE =================== +import * as SwaggerRestify from "swagger-restify-mw"; +import * as restify from "restify"; + +let app = restify.createServer(); + +let config = { + appRoot: __dirname // required config +} as SwaggerRestify.Config; + +SwaggerRestify.create(config, function(err, swaggerRestify) { + if (err) { throw err; } + + swaggerRestify.register(app); + + let port = process.env.PORT || 10010; + app.listen(port); + + if (swaggerRestify.runner.swagger.paths['/hello']) { + console.log('try this:\ncurl http://127.0.0.1:' + port + '/hello?name=Scott'); + } +}); + + =============================================== */ + +import { Config, RestifyMiddleware } from "swagger-node-runner"; + +/** export interfaces */ +export { Config, RestifyMiddleware } from "swagger-node-runner"; + +/** + * Create a new instance of a Restify specific `SwaggerNodeRunner` middleware + * + * The `swagger-node-runner` module has the following config priority: + * 1. `swagger_*` environment vars + * 2. `config` passed to `create()` + * 3. read from swagger node in `default.yaml` in config directory + * 4. module defaults + * + * @see @link{https://github.com/apigee-127/swagger-express|Github} + */ +export function create(config: Config, cb: (err: Error | undefined, middleware: RestifyMiddleware) => void): void; diff --git a/swagger-restify-mw/swagger-restify-mw-tests.ts b/swagger-restify-mw/swagger-restify-mw-tests.ts new file mode 100644 index 0000000000..02053c12ea --- /dev/null +++ b/swagger-restify-mw/swagger-restify-mw-tests.ts @@ -0,0 +1,43 @@ +import * as SwaggerRestify from "swagger-restify-mw"; +import * as restify from "restify"; + +let app = restify.createServer(); + +let config = { + appRoot: __dirname // required config +} as SwaggerRestify.Config; + +SwaggerRestify.create(config, function(err, swaggerRestify) { + if (err) { throw err; } + + swaggerRestify.register(app); + + let port = process.env.PORT || 10010; + app.listen(port); + + // if (swaggerRestify.runner.swagger.paths['/hello']) { + // console.log('try this:\ncurl http://127.0.0.1:' + port + '/hello?name=Scott'); + // } +}); + + +let swaggerSecurityHandlerCb = (err: Error) => { + //do nothing +}; + + +let configComplex: SwaggerRestify.Config = { + appRoot: __dirname, + configDir: "some/directory", + controllersDirs: ["some/directory"], + fittingsDirs: ["some/directory"], + mockMode: true, + swaggerControllerPipe: 'swagger_controllers', + swaggerSecurityHandlers: { + // did not manage to research the typings of first 3 arguments + someHandlerName: ({}, {}, {}, swaggerSecurityHandlerCb) => { + //do nothing + } + }, + validateResponse: true +}; diff --git a/swagger-restify-mw/tsconfig.json b/swagger-restify-mw/tsconfig.json new file mode 100644 index 0000000000..373744af7c --- /dev/null +++ b/swagger-restify-mw/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "swagger-restify-mw-tests.ts" + ] +} diff --git a/swagger-restify-mw/tslint.json b/swagger-restify-mw/tslint.json new file mode 100644 index 0000000000..377cc837d4 --- /dev/null +++ b/swagger-restify-mw/tslint.json @@ -0,0 +1 @@ +{ "extends": "../tslint.json" } From 9e55cea805dc39b73f9ac8e701a30b910feea294 Mon Sep 17 00:00:00 2001 From: Michael Mrowetz Date: Mon, 2 Jan 2017 15:02:16 +0900 Subject: [PATCH 2/3] remove commented line --- swagger-node-runner/swagger-node-runner-tests.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/swagger-node-runner/swagger-node-runner-tests.ts b/swagger-node-runner/swagger-node-runner-tests.ts index 04b0f56bb8..2d20ad21c8 100644 --- a/swagger-node-runner/swagger-node-runner-tests.ts +++ b/swagger-node-runner/swagger-node-runner-tests.ts @@ -50,7 +50,6 @@ SwaggerNodeRunner.create(config, function(err, runner) { let app = restify.createServer(); SwaggerNodeRunner.create(config, function(err, runner) { -// SwaggerRestify.create(config, function(err, swaggerRestify) { if (err) { throw err; } let restifyMiddelware = runner.restifyMiddleware() From cb285bff597f667ea973d9a78f42a70feb89fc31 Mon Sep 17 00:00:00 2001 From: Michael Mrowetz Date: Mon, 2 Jan 2017 15:23:51 +0900 Subject: [PATCH 3/3] remove commented out code --- swagger-restify-mw/swagger-restify-mw-tests.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/swagger-restify-mw/swagger-restify-mw-tests.ts b/swagger-restify-mw/swagger-restify-mw-tests.ts index 02053c12ea..c8bd436c7c 100644 --- a/swagger-restify-mw/swagger-restify-mw-tests.ts +++ b/swagger-restify-mw/swagger-restify-mw-tests.ts @@ -14,10 +14,6 @@ SwaggerRestify.create(config, function(err, swaggerRestify) { let port = process.env.PORT || 10010; app.listen(port); - - // if (swaggerRestify.runner.swagger.paths['/hello']) { - // console.log('try this:\ncurl http://127.0.0.1:' + port + '/hello?name=Scott'); - // } });