schema.js 881 B

123456789101112131415161718192021222324252627282930313233343536
  1. const express = require('express');
  2. const swaggerJSON = require('../../doc/api.swagger.json');
  3. const PACKAGE = require('../../package.json');
  4. let router = express.Router({
  5. caseSensitive: true,
  6. strict: true,
  7. mergeParams: true
  8. });
  9. router
  10. .route('/')
  11. .options((req, res) => {
  12. res.sendStatus(204);
  13. })
  14. /**
  15. * GET /schema
  16. */
  17. .get((req, res/*, next*/) => {
  18. let proto = req.protocol;
  19. if (typeof req.headers['x-forwarded-proto'] !== 'undefined' && req.headers['x-forwarded-proto']) {
  20. proto = req.headers['x-forwarded-proto'];
  21. }
  22. let origin = proto + '://' + req.hostname;
  23. if (typeof req.headers.origin !== 'undefined' && req.headers.origin) {
  24. origin = req.headers.origin;
  25. }
  26. swaggerJSON.info.version = PACKAGE.version;
  27. swaggerJSON.servers[0].url = origin + '/api';
  28. res.status(200).send(swaggerJSON);
  29. });
  30. module.exports = router;