nodeServer.run = function (config) { var app = express(); config.debug && expressDebug(app); var api = require('./config/api'); app.use(swaggerize({ api: api, docspath: '/api-docs', handlers: './lib/handlers' })); app.get('/', function (request, response) { response.send('INDEX'); }); app.get(api.basePath, function (request, response) { response.send(JSON.stringify(api)); }); var server = http.createServer(app); server.listen(config.port, 'localhost', function () { var host = server.address().address + ':' + server.address().port; app.swagger.api.host = host; console.log(host); }); };
test('api', function (t) { var app = express(); app.use(swaggerize({ api: require('./..\config\api.json'), handlers: path.join(__dirname, '..\handlers') })); t.test('test get /contacts', function (t) { var responseSchema = enjoi({ 'type': "array", 'items': {"$ref":"#/definitions/Contact"} }, { '#': require('..\config\api.json') }); request(app).get('//contacts') .end(function (err, res) { t.ok(!err, 'get /contacts no error.'); t.strictEqual(res.statusCode, 200, 'get /contacts 200 status.'); responseSchema.validate(res.body, function (error) { t.ok(!error, 'Response schema valid.'); }); t.end(); }); }); });
test('api', function (t) { var app = express(); app.use(require('body-parser')()); app.use(swaggerize({ api: path.join(__dirname, './../config/petstore.json'), handlers: path.join(__dirname, '../handlers') })); t.test('test get /pets', function (t) { var responseSchema = enjoi({ '$ref': "#/definitions/Pets" }, { subSchemas: { '#': require(Path.join(__dirname, './../config/petstore.json')) } }); request(app).get('/v1/pets') .end(function (err, res) { t.ok(!err, 'get /pets no error.'); t.strictEqual(res.statusCode, 200, 'get /pets 200 status.'); responseSchema.validate(res.body, function (error) { t.ok(!error, 'Response schema valid.'); }); t.end(); }); }); t.test('test post /pets', function (t) { request(app).post('/v1/pets') .end(function (err, res) { t.ok(!err, 'post /pets no error.'); t.strictEqual(res.statusCode, 201, 'post /pets 201 status.'); t.end(); }); }); });
test('api', function (t) { var app = express(); app.use(require('body-parser')()); app.use(swaggerize({ api: require('../../apis/profiles.json'), handlers: path.join(__dirname, '../../handlers/profiles'), })); t.test('test GET /{profile}/{mac}', function (t) { t.plan(2); request(app).get('/profiles/helloworld/{mac}') .expect(200) .end(function (err, res) { t.ok(!err, 'get /{profile}/{mac} no error.'); t.strictEqual(res.statusCode, 200, 'get /{profile}/{mac} 200 status.'); }); }); t.test('test PUT /{profile}/{mac}', function (t) { var body = {"cloud_config":"helloworld","version":"helloworld","sshkey":"helloworld","rootfstype":"helloworld","coreos_autologin":"******"}; t.plan(2); request(app).put('/profiles/helloworld/{mac}') .expect(200).send(body) .end(function (err, res) { t.ok(!err, 'put /{profile}/{mac} no error.'); t.strictEqual(res.statusCode, 200, 'put /{profile}/{mac} 200 status.'); }); }); });
test('api', function (t) { var app = express(); app.use(swaggerize({ api: path.join(__dirname, './..\config\api.json'), handlers: path.join(__dirname, '..\handlers') })); t.test('test get /products/{id}/stock', function (t) { var responseSchema = enjoi({ 'type': "array", 'items': {"$ref":"#/definitions/ProductStock"} }, { subSchemas: { '#': require(Path.join(__dirname, './..\config\api.json')) } }); request(app).get('//products/helloworld/stock') .end(function (err, res) { t.ok(!err, 'get /products/{id}/stock no error.'); t.strictEqual(res.statusCode, 200, 'get /products/{id}/stock 200 status.'); responseSchema.validate(res.body, function (error) { t.ok(!error, 'Response schema valid.'); }); t.end(); }); }); });
var http = require('http'); var express = require('express'); var bodyParser = require('body-parser'); var swaggerize = require('swaggerize-express'); var swaggerUi = require('swaggerize-ui'); // second change var path = require('path'); var app = express(); var server = http.createServer(app); app.use(bodyParser.json()); app.use(swaggerize({ api: path.resolve('./config/swagger.json'), // third change handlers: path.resolve('./handlers'), docspath: '/swagger' // fourth change })); // change four app.use('/docs', swaggerUi({ docs: '/swagger' })); server.listen(port, function () { // fifth and final change }); // var Http = require('http'); // var Express = require('express'); // var BodyParser = require('body-parser'); // var Swaggerize = require('swaggerize-express');
'use strict'; var http = require('http'); var express = require('express'); var bodyParser = require('body-parser'); var swaggerize = require('swaggerize-express'); var path = require('path'); var app = express(); var server = http.createServer(app); app.use(bodyParser.json()); app.use(swaggerize({ api: path.resolve('./config/petstore.json'), handlers: path.resolve('./handlers') })); app.set('port', (process.env.PORT || 8000)); server.listen(app.get('port'), function () { app.swagger.api.host = server.address().address + ':' + server.address().port; });
autoIncrement.initialize(db); passport.use(auth.localStrategy()); //Tell passport to use our newly created local strategy for authentication passport.serializeUser((user, done) => { console.log(`serializeUser:${user._id}`); done(null, user._id); }); passport.deserializeUser((id, done) => { console.log(`deserializeUser:${id}`); const User = require('./models/userModel'); User.getLoginUser(id, (err, user) => done(err, user)); }); app.use(swaggerize({ api: path.resolve('./config/swagger.json'), docspath: '/docs/swagger.json', handlers: path.resolve('./handlers') })); var server = http.createServer(app); server.listen(isProduction ? 80 : 8000, ()=> { app.swagger.api.host = `${server.address().address}:${server.address().port}`; qiniu.conf.ACCESS_KEY = config.qiniu.accessKey; qiniu.conf.SECRET_KEY = config.qiniu.secretKey; config.isProduction = isProduction; redisQi.config('production' == app.get('env') || 'prelease' == app.get('env')); confPay.init();
App.use(BodyParser.json()); App.use(BodyParser.urlencoded({ extended: true })); // DON'T TRY THIS AT HOME const questions = []; let currentQuestion = 0; App.all('*', function(req, res, next) { req.questions = questions; req.getCurrentQuestion = () => { currentQuestion += 1; return currentQuestion; }; next(); }); App.use(Swaggerize({ api: Path.resolve('./config/swagger.yaml'), handlers: Path.resolve('./handlers') })); Server.listen(process.env.PORT || 5000, function () { App.swagger.api.host = this.address().address + ':' + this.address().port; /* eslint-disable no-console */ console.log('App running on %s:%d', this.address().address, this.address().port); /* eslint-disable no-console */ });
'$post': function(req, res) { app.availabilityRequestCancel(req.params, new Context(res)); } }, 'all': { '$get': function(req, res) { app.availabilityRequestAll(req.params, new Context(res)); } } } } } serverApp.use(swaggerize({ api: path.resolve(__dirname, '../config/swagger.yaml'), handlers: handlers, })); function normalizePort(val) { const port = parseInt(val, 10); if (isNaN(port)) { // named pipe return val; } if (port >= 0) { // port number return port; }
'use strict'; var port = process.env.PORT || 4001; var http = require('http'); var express = require('express'); var bodyParser = require('body-parser'); var swaggerize = require('swaggerize-express'); var swaggerUi = require('swaggerize-ui'); // change one var path = require('path'); var app = express(); var server = http.createServer(app); app.use(bodyParser.json()); app.use(swaggerize({ api: path.resolve('./config/api.json'), // change two handlers: path.resolve('./handlers'), docspath: '/swagger/docs/v1' // change three })); // change four app.use('/swagger', swaggerUi({ docs: '/swagger/docs/v1' })); server.listen(port, function () { app.setHost(undefined); // change five });
var swaggerize = require('swaggerize-express'); var path = require('path'); var db = require('./lib/lib_mongoose'); var app = express(); var server = http.createServer(app); app.use(bodyParser.json()); app.configure = function configure(nconf, next) { //Configure the database db.config(nconf.get('./config/databaseConfig')); next(null); }; app.use(swaggerize({ api: path.resolve('./<%=apiPath%>'), handlers: path.resolve('./handlers') })); app.use(function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); next(); }); server.listen(8000, function () { app.setHost(server.address().address + ':' + server.address().port); });
var Express = require('express'); var BodyParser = require('body-parser'); var Swaggerize = require('swaggerize-express'); var Path = require('path'); var swaggerUi = require('swaggerize-ui'); var App = Express(); var Server = Http.createServer(App); App.use(BodyParser.json()); App.use(BodyParser.urlencoded({ extended: true })); App.use(Swaggerize({ api: Path.resolve('./config/swagger.json'), docspath: '/api-docs', handlers: Path.resolve('./handlers') })); App.use('/docs', swaggerUi({ docs: '/v1/api-docs' // from the express route above. })); Server.listen(process.env.PORT || 8000, function () { App.swagger.api.host = this.address().address + ':' + this.address().port; /* eslint-disable no-console */ console.log('App running on %s:%d', this.address().address, this.address().port); /* eslint-disable no-console */ });
Test('/owner/{username}', function (t) { var apiPath = Path.resolve(__dirname, '../../config/swagger.json'); var App = Express(); App.use(BodyParser.json()); App.use(BodyParser.urlencoded({ extended: true })); App.use(Swaggerize({ api: apiPath, handlers: Path.resolve(__dirname, '../../handlers'), security: Path.resolve(__dirname, '../../security') })); Parser.validate(apiPath, function (err, api) { t.error(err, 'No parse error'); t.ok(api, 'Valid swagger api'); /** * summary: Get owner by user name * description: * parameters: username * produces: application/xml, application/json * responses: 200, 400, 404 */ t.test('test getOwnerByName get operation', function (t) { Mockgen().requests({ path: '/owner/{username}', operation: 'get' }, function (err, mock) { var request; t.error(err); t.ok(mock); t.ok(mock.request); //Get the resolved path from mock request //Mock request Path templates({}) are resolved using path parameters request = Request(App) .get('/v2' + mock.request.path); if (mock.request.body) { //Send the request body request = request.send(mock.request.body); } else if (mock.request.formData){ //Send the request form data request = request.send(mock.request.formData); //Set the Content-Type as application/x-www-form-urlencoded request = request.set('Content-Type', 'application/x-www-form-urlencoded'); } // If headers are present, set the headers. if (mock.request.headers && mock.request.headers.length > 0) { Object.keys(mock.request.headers).forEach(function (headerName) { request = request.set(headerName, mock.request.headers[headerName]); }); } request.end(function (err, res) { t.error(err, 'No error'); t.ok(res.statusCode === 200, 'Ok response status'); var Validator = require('is-my-json-valid'); var validate = Validator(api.paths['/owner/{username}']['get']['responses']['200']['schema']); var response = res.body; if (Object.keys(response).length <= 0) { response = res.text; } t.ok(validate(response), 'Valid response'); t.error(validate.errors, 'No validation errors'); t.end(); }); }); });/** * summary: Updated owner * description: This can only be done by the logged in user. * parameters: username, body * produces: application/xml, application/json * responses: 400, 404 */ t.test('test updateOwner put operation', function (t) { Mockgen().requests({ path: '/owner/{username}', operation: 'put' }, function (err, mock) { var request; t.error(err); t.ok(mock); t.ok(mock.request); //Get the resolved path from mock request //Mock request Path templates({}) are resolved using path parameters request = Request(App) .put('/v2' + mock.request.path); if (mock.request.body) { //Send the request body request = request.send(mock.request.body); } else if (mock.request.formData){ //Send the request form data request = request.send(mock.request.formData); //Set the Content-Type as application/x-www-form-urlencoded request = request.set('Content-Type', 'application/x-www-form-urlencoded'); } // If headers are present, set the headers. if (mock.request.headers && mock.request.headers.length > 0) { Object.keys(mock.request.headers).forEach(function (headerName) { request = request.set(headerName, mock.request.headers[headerName]); }); } request.end(function (err, res) { t.error(err, 'No error'); t.ok(res.statusCode === 400, 'Ok response status'); t.end(); }); }); });/** * summary: Delete owner * description: This can only be done by the logged in user. * parameters: username * produces: application/xml, application/json * responses: 400, 404 */ t.test('test deleteOwner delete operation', function (t) { Mockgen().requests({ path: '/owner/{username}', operation: 'delete' }, function (err, mock) { var request; t.error(err); t.ok(mock); t.ok(mock.request); //Get the resolved path from mock request //Mock request Path templates({}) are resolved using path parameters request = Request(App) .delete('/v2' + mock.request.path); if (mock.request.body) { //Send the request body request = request.send(mock.request.body); } else if (mock.request.formData){ //Send the request form data request = request.send(mock.request.formData); //Set the Content-Type as application/x-www-form-urlencoded request = request.set('Content-Type', 'application/x-www-form-urlencoded'); } // If headers are present, set the headers. if (mock.request.headers && mock.request.headers.length > 0) { Object.keys(mock.request.headers).forEach(function (headerName) { request = request.set(headerName, mock.request.headers[headerName]); }); } request.end(function (err, res) { t.error(err, 'No error'); t.ok(res.statusCode === 400, 'Ok response status'); t.end(); }); }); }); }); });