UNPKG

swagger-decorator

Version:
221 lines (181 loc) 5.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.apiRequestMapping = apiRequestMapping; exports.apiDescription = apiDescription; exports.pathParameter = pathParameter; exports.queryParameter = queryParameter; exports.bodyParameter = bodyParameter; exports.apiResponse = apiResponse; var _singleton = require("../internal/singleton"); var _definitions = require("./definitions"); /** * Description 设置请求路径 * @param method * @param path * @returns {Function} */ function apiRequestMapping(method, path) { return function (target, key, descriptor) { var apiKey = target.name + "-" + key; // 设置请求方法 descriptor.value.method = method; // 设置请求路径 descriptor.value.path = path; _initializeInnerAPIObject(target, key, descriptor); _singleton.innerAPIObject[apiKey].requestMapping = { method: method, path: path }; return descriptor; }; } /** * Description 接口描述 * @param description * @param produces * @returns {Function} */ function apiDescription(description) { var produces = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ["application/json"]; return function (target, key, descriptor) { var apiKey = target.name + "-" + key; _initializeInnerAPIObject(target, key, descriptor); _singleton.innerAPIObject[apiKey].description = { description: description, produces: produces }; return descriptor; }; } /** * 路径参数 * @param name * @param description * @param type * @param defaultValue * @returns {Function} */ function pathParameter(_ref) { var name = _ref.name, description = _ref.description, type = _ref.type, defaultValue = _ref.defaultValue; return function (target, key, descriptor) { var apiKey = target.name + "-" + key; _initializeInnerAPIObject(target, key, descriptor); _singleton.innerAPIObject[apiKey].pathParameter || (_singleton.innerAPIObject[apiKey].pathParameter = []); _singleton.innerAPIObject[apiKey].pathParameter.splice(0, 0, { name: name, description: description, type: type, in: "path", required: true, default: defaultValue }); return descriptor; }; } /** * Description 查询参数相关注释 * @param name * @param description * @param required * @param type * @param items * @param defaultValue * @returns {Function} */ function queryParameter(_ref2) { var name = _ref2.name, description = _ref2.description, required = _ref2.required, type = _ref2.type, items = _ref2.items, defaultValue = _ref2.defaultValue; return function (target, key, descriptor) { var apiKey = target.name + "-" + key; _initializeInnerAPIObject(target, key, descriptor); _singleton.innerAPIObject[apiKey].queryParameter || (_singleton.innerAPIObject[apiKey].queryParameter = []); _singleton.innerAPIObject[apiKey].queryParameter.splice(0, 0, { name: name, description: description, required: required, type: type, items: items, in: "query", default: defaultValue }); return descriptor; }; } /** * Description * @param name * @param description * @param required * @param schema * @returns {Function} */ function bodyParameter(_ref3) { var name = _ref3.name, description = _ref3.description, required = _ref3.required, schema = _ref3.schema; return function (target, key, descriptor) { var apiKey = target.name + "-" + key; _initializeInnerAPIObject(target, key, descriptor); _singleton.innerAPIObject[apiKey].bodyParameter || (_singleton.innerAPIObject[apiKey].bodyParameter = []); _singleton.innerAPIObject[apiKey].bodyParameter.splice(0, 0, { name: name, description: description, required: required, schema: schema, in: "body" }); // 根据传入的 Schema 构建定义 (0, _definitions.buildDefinitions)(schema); return descriptor; }; } /** * Description 设置请求响应 * @param statusCode * @param description * @param schema * @returns {Function} */ function apiResponse(statusCode, description, schema) { return function (target, key, descriptor) { var apiKey = target.name + "-" + key; _initializeInnerAPIObject(target, key, descriptor); _singleton.innerAPIObject[apiKey].responses || (_singleton.innerAPIObject[apiKey].responses = []); _singleton.innerAPIObject[apiKey].responses.splice(0, 0, { statusCode: statusCode, description: description, schema: schema }); // 根据传入的 Schema 构建定义 (0, _definitions.buildDefinitions)(schema); return descriptor; }; } /** * Description 初始化内部存放 API 信息的对象 * @param target * @param key * @param descriptor * @private */ function _initializeInnerAPIObject(target, key, descriptor) { var apiKey = target.name + "-" + key; if (!_singleton.innerAPIObject[apiKey]) { _singleton.innerAPIObject[apiKey] = {}; _singleton.innerAPIObject[apiKey].instance = { target: target, key: key, descriptor: descriptor }; } }