说明ApiPluginsFramework是Web Api插件框架,使用Flask作为Http协议处理,使用flasgger作为Http测试。让开发者只关注于业务,业务体现在插件实现中。插件模块中通过@plugin_base.ModuleFunc来设置Api信息欢迎各位一起加入和完善更多的功能,让ApiPluginsFramework开发更加简便和强大,让ApiPluginsFramework下的插件更加丰富 代码目录结构.├── README.MD├── docs (文档)│ ├── src (源码)│ ├── core(核心)│ └── libs(库)│ └── plugins(插件)│ └── utils(公共)└── main.py (启动主程序) 插件目录结构.ApiPluginsFramework │---Plugins │ │---Plugin1(插件目录) │ ├── __init__.py(插件定义文件) │ └── plugin_moduleX.py(插件模块文件) │ │---Plugin2(插件目录) │ ├── __init__.py(插件定义文件) │ └── plugin_moduleX.py(插件模块文件) 运行环境requirements运行插件开发规范插件定义__init__.py文件写法 #: 插件类定义class Plugin1(plugin_base.PluginBase): #: 插件初始化方法 def __init__(self, pluginName,pluginPath): super(Plugin1, self).__init__(pluginName,pluginPath) #: 实现关于插件信息接口 def GetAbout(self): return { "plugin_version": "1.0.0.1", "plugin_author": "CornWu", "plugin_description": "测试插件", "plugin_copyright": "海南新境界软件有限公司", "plugin_pubdate": "2018-08-20", } #: 创建插件实例接口def createPluginInstance(pluginName,pluginPath): return Plugin1(pluginName,pluginPath) 插件模块plugin_module1.py文件写法(这里就专注业务实现) # -*- coding: utf-8 -*-from libs import plugin_base@plugin_base.ModuleFunc("/test.do", ApiOperation = { "Name": "测试功能1", "Description": "测试功能1描述", "NeedAuth": False }, ApiParameter = { "Description": "用户信息", "Properties": { "UserID": { "DataType": "string", "Description": "用户ID", "Required": True }, "UserName": { "DataType": "string", "Description": "用户姓名", "Required": True }, "UserStatus": { "DataType": "string", "Description": "用户状态", "Enum": ["Stop","Start"], "Required": True }, "UserDept": { "DataType": "object", "Description": "组织机构", "Required": True, "Properties": { "DeptID": { "DataType": "string", "Description": "部门ID", "Required": True }, "DeptName": { "DataType": "string", "Description": "部门名称", "Required": True } } }, "UserCorps": { "DataType": "array", "Description": "用户公司", "Required": True, "Items": { "DataType": "string" } }, "UserRoles": { "DataType": "array", "Description": "用户角色", "Required": True, "Items": { "DataType": "object", "Properties": { "RoleID": {"DataType": "string", "Description": "角色ID", "Required": True}, "RoleName": {"DataType": "string", "Description": "角色名称", "Required": True} } } } } }, ApiResponse = { "Description": "部门信息", "DataType": "string", "Properties": { "DeptID": {"DataType": "string", "Description": "部门ID", "Required": True}, "DeptName": {"DataType": "string", "Description": "部门名称", "Required": True} } } )def PluginModuleFunc1(inParameter): isExist = inParameter.HasAttr("UserName") return inParameter.UserName 相关运行截图,基于ApiPluginsFrameworkFlasgger界面 JS自动生成相关截图,基于ApiPluginsFrameworkJS页面 |
请发表评论