需通过HTTP请求调用第三方天气API并解析响应:一、配置HTTP Request连接器,设置Host、GET路径及查询参数;二、用DataWeave提取并标准化温度、城市名、天气描述;三、通过mule-artifact.json定义全局属性注入密钥与URL;四、添加On Error Propagate处理器捕获HTTP异常并返回结构化错误。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在MuleRun中需要集成外部天气服务以获取实时天气信息,则需通过HTTP请求调用第三方天气API,并将响应数据解析为可用格式。以下是完成该配置的具体步骤:
一、配置HTTP请求连接器调用天气API
此方法通过MuleRun的HTTP Request组件发起标准REST请求,直接对接支持JSON返回的公开天气API(如OpenWeatherMap),适用于大多数基础场景。
1、在MuleRun流程画布中拖入HTTP Request连接器。
2、双击打开配置面板,在“Configuration”选项卡中点击“+”新建一个HTTP配置,设置Host为api.openweathermap.org,Port留空(默认使用HTTPS 443)。
3、切换至“Request Configuration”选项卡,设置Method为GET,URL Path为/data/2.5/weather。
4、在“Query Parameters”区域添加参数:q=城市名(例如q=Beijing)、appid=您的API密钥(需提前在OpenWeatherMap官网注册获取)。
5、勾选“Follow Redirects”并启用“Response Streaming”以确保完整接收JSON响应。
二、使用DataWeave转换API响应结构
天气API返回的原始JSON通常包含嵌套字段和单位混杂内容,需借助DataWeave脚本进行清洗与标准化,便于后续系统消费。
1、在HTTP Request连接器后添加Transform Message组件。
2、在脚本编辑区输入以下DataWeave表达式:
3、使用payload.main.temp提取摄氏温度值,并通过divideBy(10)处理OpenWeatherMap返回的开尔文值(若使用metric单位则无需转换)。
4、提取payload.name作为城市名称,payload.weather[0].description作为天气描述,并统一包装为{city: "...", temperature: ..., condition: "..."}结构。
三、配置全局属性注入API密钥与端点
为避免硬编码敏感信息及提升环境适配性,应将API密钥与基础URL定义为全局属性,实现配置与逻辑分离。
1、在MuleRun项目根目录下的mule-artifact.json文件中,于"properties"节点下新增键值对:weather.api.key=your_api_key_here。
2、在相同位置添加weather.api.baseurl=https://api.openweathermap.org/data/2.5。
3、回到HTTP Request配置界面,在Query Parameters的appid字段中输入表达式:#[p('weather.api.key')]。
4、在URL Path字段中替换为#[p('weather.api.baseurl')] + '/weather'。
四、添加错误处理器捕获HTTP异常
网络超时、API限流或无效城市参数均会导致调用失败,需配置专用错误处理器以区分不同异常类型并输出可读提示。
1、右键HTTP Request连接器,选择“Add Error Handler” → “On Error Propagate”。
2、在该错误处理器内添加Logger组件,Message设置为:"Weather API call failed with status #[error.errorType.identifier]: #[error.errorMessage]"。
3、在同级添加Choice Router,依据error.errorType.identifier匹配值为HTTP:BAD_REQUEST时,输出“城市参数不合法”;匹配HTTP:NOT_FOUND时输出“未找到对应城市数据”。
4、所有分支末尾均连接Set Payload组件,统一返回状态码400及标准错误JSON结构。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











