swagger_generator_flutter/examples/api_client_config_example.yaml

131 lines
2.6 KiB
YAML

# API Client 配置示例
# 演示如何自定义 API Client 的类名和文件名
# 示例 1: 使用默认配置
# 如果不配置,将使用默认值:
# - class_name: ApiClient
# - file_name: api_client
generation:
api:
enabled: true
use_retrofit: true
use_dio: true
# client 配置可以省略,使用默认值
---
# 示例 2: 自定义 API Client 名称
# 适用于多个项目或模块,避免命名冲突
generation:
api:
enabled: true
use_retrofit: true
use_dio: true
client:
class_name: "MyApiClient" # 自定义类名
file_name: "my_api_client" # 自定义文件名
# 生成的文件:
# - lib/generated/api/my_api_client.dart
#
# 生成的类:
# class MyApiClient {
# final Dio _dio;
# ...
# }
---
# 示例 3: 项目特定的命名
# 根据项目名称自定义
generation:
api:
enabled: true
use_retrofit: true
use_dio: true
client:
class_name: "ShopApiClient"
file_name: "shop_api_client"
# 生成的文件:
# - lib/generated/api/shop_api_client.dart
#
# 生成的类:
# class ShopApiClient {
# final Dio _dio;
# ...
# }
---
# 示例 4: 模块化命名
# 适用于大型项目,按模块划分
generation:
api:
enabled: true
use_retrofit: true
use_dio: true
client:
class_name: "UserModuleApi"
file_name: "user_module_api"
# 生成的文件:
# - lib/generated/api/user_module_api.dart
#
# 生成的类:
# class UserModuleApi {
# final Dio _dio;
# ...
# }
---
# 示例 5: 完整配置示例
# 包含所有相关配置
generator:
name: "my_project_generator"
version: "1.0"
author: "Your Name"
copyright: "Copyright (C) 2025 Your Company. All rights reserved."
input:
swagger_urls:
- "https://your-api.com/swagger/v2/swagger.json"
output:
base_dir: "./lib/generated"
api_dir: "./lib/generated/api"
models_dir: "./lib/generated/api_models"
split_by_tags: true
generation:
api:
enabled: true
use_retrofit: true
use_dio: true
parser: "JsonSerializable"
# 自定义 API Client
client:
class_name: "AppApiClient"
file_name: "app_api_client"
# 使用方式:
# 1. 复制此配置到项目根目录的 generator_config.yaml
# 2. 运行生成命令:
# dart run swagger_generator_flutter generate --all
# 3. 生成的主 API 文件:
# lib/generated/api/app_api_client.dart
# 4. 在代码中使用:
# import 'package:your_app/generated/api/app_api_client.dart';
#
# final dio = Dio();
# final apiClient = AppApiClient(dio);
#
# // 访问 V2 版本的 API
# final result = await apiClient.mobileManagerV2.getData();