[TOC] ## 获取过滤器列表 ~~~[api] get:/v1/cc-filters integer:page=1#当前页码 integer:limit=10#单页显示数量 integer:internal_self#置为1时显示内置及自己的过滤器 integer:internal#置为1时,只显示内置过滤器 boolean:enable#显示禁用或启用的过滤器 <<< 返回结果 { "code": 0, "count": 1, "data": [ { "c.uid": 2, "create_at": null, "create_at2": "2021-11-25 14:36:29", "des": "", "enable": 1, "extra": "{}", "id": 10021, "internal": 0, "max_req": 5, "max_req_per_uri": 0, "name": "验证码", "state": null, "task_id": null, "type": "captcha_filter", "uid": 2, "update_at": null, "update_at2": "2021-11-25 14:36:29", "username": "jason", "version": 1, "within_second": 60 } ] } ~~~ ## 新增过滤器 ~~~[api] post:/v1/cc-filters *string:name#过滤器名称 des#备注 *type#类型,可选为req_rate、302_challenge、browser_verify_auto、slide_filter、captcha_filter、click_filter、url_auth、delay_jump_filter *integer:within_second#在指定的秒数下统计 *integer:max_req#在within_second秒数内最大请求数 max_req_per_uri#统计同一个uri请求的次数。当类型为req_rate时,才需要填写。 json:extra#此字段为json类型,用于设置url鉴权。当类型为url_auth时才需要填写。当键值mode为TypeA时,需要提供key、sign_name、time_name、time_diff、sign_use_times;当mode为TypeB时,需要提供key、sign_name、time_diff、sign_use_times。key为密钥,sign_name为sign的参数数,time_name为time的参数名,time_diff为相当的时间,sign_use_times为签名可以用的次数。 <<< 返回结果 { "code": 0, "data": "1", "msg": "过滤器添加成功" } <<< 提交内容 { "name": "5秒验证", "des": "", "type": "delay_jump_filter", "within_second": "60", "max_req": "5", "max_req_per_uri": "", "extra": {} } ~~~ ## 批量修改过滤器 (数据格式为数组) ~~~[api] put:/v1/cc-filters integer:id#过滤器ID string:name#过滤器名称 des#备注 type#类型,可选为req_rate、302_challenge、browser_verify_auto、slide_filter、captcha_filter、click_filter、url_auth、delay_jump_filter integer:within_second#在指定的秒数下统计 integer:max_req#在within_second秒数内最大请求数 max_req_per_uri#统计同一个uri请求的次数。当类型为req_rate时,才需要填写。 json:extra#此字段为json类型,用于设置url鉴权。当类型为url_auth时才需要填写。当键值mode为TypeA时,需要提供key、sign_name、time_name、time_diff、sign_use_times;当mode为TypeB时,需要提供key、sign_name、time_diff、sign_use_times。key为密钥,sign_name为sign的参数数,time_name为time的参数名,time_diff为相当的时间,sign_use_times为签名可以用的次数。 <<< 返回结果 { "code": 0, "data": "", "msg": "更新过滤器成功" } <<< 提交内容 [{ "id": 1, "enable": 0 }, { "id": 2, "enable": 0 }] ~~~ ## 获取单个过滤器 ~~~[api] get:/v1/cc-filters/<过滤器ID> <<< 返回结果 { "code": 0, "data": { "create_at": null, "des": "", "enable": 1, "extra": "{}", "id": 10021, "internal": 0, "max_req": 5, "max_req_per_uri": 0, "name": "验证码", "task_id": null, "type": "captcha_filter", "uid": 2, "update_at": null, "version": 1, "within_second": 60 }, "msg": "" } ~~~ ## 修改单个过滤器 ~~~[api] put:/v1/cc-filters/<过滤器ID> string:name#过滤器名称 des#备注 type#类型,可选为req_rate、302_challenge、browser_verify_auto、slide_filter、captcha_filter、click_filter、url_auth、delay_jump_filter integer:within_second#在指定的秒数下统计 integer:max_req#在within_second秒数内最大请求数 max_req_per_uri#统计同一个uri请求的次数。当类型为req_rate时,才需要填写。 json:extra#此字段为json类型,用于设置url鉴权。当类型为url_auth时才需要填写。当键值mode为TypeA时,需要提供key、sign_name、time_name、time_diff、sign_use_times;当mode为TypeB时,需要提供key、sign_name、time_diff、sign_use_times。key为密钥,sign_name为sign的参数数,time_name为time的参数名,time_diff为相当的时间,sign_use_times为签名可以用的次数。 <<< 返回结果 { "code": 0, "data": "", "msg": "更新过滤器成功" } <<< 提交内容 { "name": "新名称", } ~~~ ## 删除过滤器 ~~~[api] delete:/v1/cc-filters/<过滤器ID,多个以逗号分隔> <<< 返回结果 { "code": 0, "data": "", "msg": "过滤器删除成功" } ~~~