Skip to content

http应用

指通过http来与与外部web应用进行交互的app应用,标准http应用的基类是AbstractHttpApp它为工作流提供了基础的HTTP任务声明,同时提供了http应用的auth鉴权、responseCheck结果检测的标准入口。

public abstract class AbstractHttpApp extends AbstractApp {
    @Getter
    @Setter
    protected String serverUrl = ""; // 应用基础路径
  
		// 声明默认任务
    @Info(name = "默认HTTP调用")
    public HttpTask defaultTask() {
        HttpTask httpTask = new HttpTask();
        initIntercept(httpTask);
        httpTask.setMethod("POST");// 默认
        return httpTask;
    }
    // 结果验证,需子类实现
    protected void responseCheck(HttpTask task) {
    }
    // 鉴权操作,需子类实现
    protected void auth(HttpTask task) {
    }
}
  • serverUrl 应用基础路径(非必填),若用户未填写完整url路径 将自动补上该路径
  • defaultTask 用于声明该应用默认的 HTTP任务,添加了initIntercept拦截器用于将鉴权与结果验证逻辑组织进去。
  • responseCheck 结果检测标准入口,需子类实现
  • auth 鉴权标准入口,需子类实现

注意:AbstractHttpApp 是一个抽象类不能直接配置,只能配置其实现类。

声明默认HTTP任务

所有AbstractHttpApp实现都支持默认http任务声明defaultTask ,声明后的HTTP任务增加以下特性:

  • 设置http请求方法为POST
  • 添加基础授权处理,用户无需在配置授权参数
  • 对返回结果的异常判定处理。

示例:

假设已配置微信应用实例myWeixin

//1.创建自定义菜单 
task1= myWeixin {
  url="https://api.weixin.qq.com/cgi-bin/menu/create"
  json """"
        {
           "button":[
           	{
                "type":"click",
                "name":"今日歌曲",
                "key":"V1001_TODAY_MUSIC"
            }]
       }
  """
}

//2.查询自定义菜单 
task2= myWeixin "https://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info"
  • task1任务基于默认方法声明,设置url属性同时通过json方法指定了请求体。
  • task2任务基于默认方法的快捷方式声明,指定了url,另外所有快捷声明的HTTP任务都以GET方法来请求。