代码拉取完成,页面将自动刷新
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(插件模块文件)
python 2.7.*
flask
flasgger
logging
python main.py
插件定义__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
Flasgger界面
JS页面
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型