支持两种风格:rest style , google style,具体如下:
使用docstring-parser 解析,具体可查看 https://pypi.org/project/docstring-parser/
rest style
rest style
""" 人事主业务, 进行业务生效或者校验 #流程 #人事 #xxx 流程报错可能原因: 表单高级设置缺少key值; 新增非主任职传的old_position_id为主任职岗位; :param Dict action_details: [必填]调动类型 { action_in_pos:1, ## action_number:null, # 事务编码# action_out_employee_category_name:null, #出口用工类型# action_out_position_type:null, #任职类型,# action_out_position_status_name:null, #出口岗位状态# action_out_action_reason_name:null, #变动原因# only_check:false, #true:只校验; false:校验+生效# check_way:1 #校验出入口+校验关联约束; 2:校验出入口# } :param Dict details: [必填] { "employee_id": "", #调动人 eg:"@form.employee_id@"# "employee_category_id":"", # 员工类型 eg:"@form.employee_category_id@"# "action_id": "", #变动事务 eg:"@form.action_id@"# "action_reason_id": "", #变动原因 eg:"@form.action_reason_id@"# "position_id": "", #调动后岗位 eg:"@form.position_id@"# "old_position_id": "", #调动前岗位 eg:"@form.old_position_id@"# "begin_date": "", #生效日期 eg:"@form.begin_date@"# "position_type": "", #任职类型 eg:"@form.position_type@"# "position_status_id":"" # 岗位状态信息 eg:"@form.position_status_id@"# } :param String mode: [必填] effect #生效+校验# "check" #只校验# :return: """
第一行填写接口摘要信息,简短介绍接口实现功能
第二行 #流程 #人事 #xxx 表示接口标签,可用于后续快速搜索
第三行及其他文档 接口详细内容
如上图所示 变量下回车后给出参数示例, ## 双井号用于变量注释说明
google style
google style
""" 人事主业务, 进行业务生效或者校验 #流程 #人事 #xxx 流程报错可能原因: 表单高级设置缺少key值; 新增非主任职传的old_position_id为主任职岗位; Args: details(List): [必填]detail测试 [{ "employee_id": "", # 调动人 eg:"@form.employee_id@", "employee_category_id": "", # 员工类型 eg:"@form.employee_category_id@", "action_id": "", # 变动事务 eg:"@form.action_id@", "action_reason_id": 变动原因 eg:"@form.action_reason_id@", "position_id": 调动后岗位 eg:"@form.position_id@", "old_position_id": 调动前岗位 eg:"@form.old_position_id@", "begin_date": 生效日期 eg:"@form.begin_date@", "position_type": 任职类型 eg:"@form.position_type@", "position_status_id": 岗位状态信息 eg:"@form.position_status_id@" }] action_details(Dict): [必填]测试 { action_in_pos:1, action_number:None, only_check:False, check_way:1 action_out_employee_category_name:None, action_out_position_type=None, action_out_position_status_name:None, action_out_action_reason_name:None, } mode(String): [必填]动作 "effect":生效+校验; "check":只校验 Returns: 返回 """
直接调用下边方法验证 或者在流程事件设置中验证即可
from docstring_parser import parse def parse_param(desc): docstring = parse(desc) param = {} for i in docstring.params: desc = i.description.split("\n") _type = i.type_name.lower() if i.type_name else "string" arg_options = "\n".join(desc[1:]) pattern_param = re.compile(r"(?<=#).+?(?=#)") param_example = re.sub(pattern_param, "", arg_options).replace("#", "").replace("\n", "").strip() if _type in ("dict", "list"): try: param_example = json.loads(param_example) except: pass param[i.arg_name] = param_example return param