Flutter 三方库 swagger_parser 自动化打通鸿蒙 API 通信(一键将 Swagger 转化为 Dart 模型)

Flutter 三方库 swagger_parser 自动化打通鸿蒙 API 通信(一键将 Swagger 转化为 Dart 模型)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net

在这里插入图片描述

前言

在进行 OpenHarmony 项目开发时,最枯燥的工作莫过于根据后端提供的 Swagger (OpenAPI) 文档手动编写一个个的 Request 类、Response 类和 API Client。这不仅低效,而且极易因文档更新没对齐而导致 Bug。

swagger_parser 是一个强大的命令行工具,它能直接读取本地或网络上的 Swagger JSON/YAML 文件,自动为你生成完整的 Dart 数据类和 Dio/Chopper API 控制器。

一、核心工作流

Swagger JSON / YAML

Swagger Parser

Dart 数据模型 (JSON Serialized)

Dio / Chopper 客户端代码

鸿蒙 App 业务调用

二、核心配置实战

2.1 依赖安装

dev_dependencies:swagger_parser: ^1.42.0 

2.2 配置文件 (swagger_parser.yaml)

在项目根目录下创建一个配置文件:

swagger_parser:schema_path: assets/swagger.json # 💡 Swagger JSON/YAML 的本地路径output_directory: lib/generated/api # 💡 自动生成的代码存放位置language: dart # 💡 生成语言client_api: dio # 💡 网络请求库 (dio 或 chopper)json_serializable:true# 💡 自动生成 json_serializable 模型put_clients_in_folder:true# 💡 将 Client 放入单独文件夹
在这里插入图片描述

2.3 执行生成命令

dart run swagger_parser:generate 
在这里插入图片描述
在这里插入图片描述

三、OpenHarmony 平台适配

3.1 解决生成的代码冲突

💡 技巧:Swagger 文档中如果包含某些鸿蒙保留关键字或重复的类名,你可以利用 swagger_parserreplacement_rules 配置项,为生成的类名自动添加前缀(如 Ohos),防止冲突。

3.2 网络层拦截器共享

生成的 API Client 会自动要求传入一个 Dio 实例。你可以将之前博文提到的 fresh_dio 拦截器传入,实现“自动生成代码 + 无感令牌刷新”的强强联合。

四、完整实战示例:从文档到界面

本示例模拟生成后的 API Client 如何被鸿蒙 Widget 快速调用进行数据绑定。

import'package:dio/dio.dart';import'lib/generated/api/user_client.dart';// 💡 导入生成的 ClientclassUserProfilePageextendsStatefulWidget{@override _UserProfilePageState createState()=>_UserProfilePageState();}class _UserProfilePageState extendsState<UserProfilePage>{ late UserClient _client;String _userName ="加载中...";@overridevoidinitState(){super.initState();// 1. 初始化 Dio 并实例化生成的 Clientfinal dio =Dio(BaseOptions(baseUrl:'https://api.ohos.com')); _client =UserClient(dio);_loadData();}Future<void>_loadData()async{try{// 2. 像调用普通方法一样发起复杂的 restful 请求final user =await _client.getUserInfo(id:666);setState(()=> _userName = user.name);}catch(e){print('请求失败: $e');}}@overrideWidgetbuild(BuildContext context){returnScaffold( appBar:AppBar(title:Text('API 集成实战')), body:Center(child:Text('用户数据: $_userName')),);}}
在这里插入图片描述

五、总结

swagger_parser 软件包是提升开发效率的神级工具。它把开发者从繁琐的样板代码编写中解放出来,确保了前端代码相对于后端文档的“绝对诚实”。对于 API 接口数量庞大的鸿蒙大型政企应用或大型互联网应用,由于它将“手写”代码量降低了 90% 以上,极大地降低了人为疏忽导致的联调风险。

Read more

实战篇:Python开发monogod数据库mcp server看完你就会了

实战篇:Python开发monogod数据库mcp server看完你就会了

原创不易,请关注公众号:【爬虫与大模型开发】,大模型的应用开发之路,整理了大模型在现在的企业级应用的实操及大家需要注意的一些AI开发的知识点!持续输出爬虫与大模型的相关文章。 前言 目前mcp协议是给deepseek大模型插上工具链的翅膀,让大模型不仅拥有超高的推理和文本生成能力,还能具备执行大脑意识的工具能力! 如何开发一个mcp? mcp是一种协议,指的是模型上下文协议 (Model Context Protocol)。 官方结成的mcp https://github.com/modelcontextprotocol/python-sdk mcp库 pip install mcp from mcp.server.fastmcp import FastMCP 我们先来做一个简单的案例 from mcp.server.fastmcp import FastMCP import requests mcp = FastMCP("spider") @mcp.tool() def crawl(

By Ne0inhk
AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建

AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建

AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建 作者:高瑞冬 本文目录 * AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建 * 一、MCP协议简介 * 二、创建MCP工具集 * 1. 获取MCP服务地址 * 2. 在FastGPT中创建MCP工具集 * 三、测试MCP工具 * 四、AI模型调用MCP工具 * 1. 调用单个工具 * 2. 调用整个工具集 * 五、私有化部署支持 * 1. 环境准备 * 2. 修改docker-compose.yml文件 * 3. 修改FastGPT配置 * 4. 重启服务 * 六、使用MCP-Proxy集成多个MCP服务 * 1. MCP-Proxy简介 * 2. 安装MCP-Proxy * 3. 配置MCP-Proxy * 4. 将MCP-Proxy与FastGPT集成 * 5. 高级配置

By Ne0inhk
【大模型实战篇】基于Claude MCP协议的智能体落地示例

【大模型实战篇】基于Claude MCP协议的智能体落地示例

1. 背景         之前我们在《MCP(Model Context Protocol) 大模型智能体第一个开源标准协议》一文中,介绍了MCP的概念,虽然了解了其概念、架构、解决的问题,但还缺少具体的示例,来帮助进一步理解整套MCP框架如何落地。         今天我们基于claude的官方例子--获取天气预报【1】,来理解MCP落地的整条链路。 2. MCP示例         该案例是构建一个简单的MCP天气预报服务器,并将其连接到主机,即Claude for Desktop。从基本设置开始,然后逐步发展到更复杂的使用场景。         大模型虽然能力非常强,但其弊端就是内容是过时的,这里的过时不是说内容很旧,只是表达内容具有非实时性。比如没有获取天气预报和严重天气警报的能力。因此我们将使用MCP来解决这一问题。         构建一个服务器,该服务器提供两个工具:获取警报(get-alerts)和获取预报(get-forecast)。然后,将该服务器连接到MCP主机(在本例中为Claude for Desktop)。         首先我们配置下环

By Ne0inhk
基于腾讯云HAI + DeepSeek快速设计自己的个人网页

基于腾讯云HAI + DeepSeek快速设计自己的个人网页

前言:通过结合腾讯云HAI 强大的云端运算能力与DeepSeek先进的 AI技术,本文介绍高效、便捷且低成本的设计一个自己的个人网页。你将了解到如何轻松绕过常见的技术阻碍,在腾讯云HAI平台上快速部署DeepSeek模型,仅需简单几步,就能获取一个包含个人简介、技能特长、项目经历及联系方式等核心板块的响应式网页。 目录 一、DeepSeek模型部署在腾讯云HAI 二、设计个人网页 一、DeepSeek模型部署在腾讯云HAI 把 DeepSeek 模型部署于腾讯云 HAI,用户便能避开官网访问限制,直接依托腾讯云 HAI 的超强算力运行 DeepSeek-R1 等模型。这一举措不仅降低了技术门槛,还缩短了部署时间,削减了成本。尤为关键的是,凭借 HAI 平台灵活且可扩展的特性,用户能够依据自身特定需求定制专属解决方案,进而更出色地适配特定业务场景,满足各类技术要求 。 点击访问腾讯云HAI控制台地址: 算力管理 - 高性能应用服务 - 控制台 腾讯云高性能应用服务HAI已支持DeepSeek-R1模型预装环境和CPU算力,只需简单的几步就能调用DeepSeek - R1

By Ne0inhk