1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- /**
- * URL初始化。
- *
- * 除了初始化URL,还增加对版本的访问控制。
- *
- * author: Sand
- * since: 12/23/2016
- */
- "use strict";
- let ObjectUtil = require("../util/object.util.js");
- // pages
- let index = require('../controllers/index');
- let socket = require('../controllers/socket');
- // endpoints
- let application = require('./v2/application.endpoint');
- let users = require('./v2/user.endpoint');
- let sessions = require('./v2/session.endpoint');
- let topics = require('./v2/topic.endpoint');
- let management = require('./v2/management.endpoint');
- const PAGES = require('../include/endpoints').PAGES;
- const APIv2 = require('../include/endpoints').APIv2;
- class UrlInitializer {
- constructor() {
- }
- static initRestApi(app) {
- // 旧版本API过滤
- app.use(function (req, res, next) {
- if (req.url.indexOf('/api/v1') >= 0) {
- res.status(403).send({message: "API v1 is invalid since 2.0.0, please use API v2."});
- } else {
- next();
- }
- });
- // POST, PUT请求必须使用JSON作为BODY
- app.use(function (req, res, next) {
- if(req.method === 'POST' || req.method === 'PUT'){
- if(!ObjectUtil.isJsonObject(req.body)){
- throw {httpStatus: 406, message: 'Problems parsing JSON.'}
- }
- }
- next();
- });
- app.use(APIv2.Application.Base, application);
- app.use(APIv2.Management.Base, management);
- app.use(APIv2.Users.Base, users);
- app.use(APIv2.Sessions.Base, sessions);
- app.use(APIv2.Sessions.Base, topics);
- }
- static initWebPages(app) {
- app.use(PAGES.Home.Index, index);
- app.use(PAGES.Socket.Index, socket);
- }
- }
- module.exports = UrlInitializer;
|