Flutter自动生成HTTP API代码插件http_api_generator的使用

Flutter自动生成HTTP API代码插件http_api_generator的使用

特性

通过注解生成HTTP API信息。

开始使用

在你的pubspec.yaml文件中添加依赖:

http_api_generator: latest_version

使用方法

首先定义一个抽象类,并使用注解来描述API的方法。例如:

// 导入生成的代码文件
part 'login.api.g.dart';

// 定义一个抽象类,并使用 @RestApi 注解标记它
@RestApi()
abstract class LoginApi {
  // 工厂构造函数用于创建实例
  factory LoginApi() => _LoginApi();

  // 定义一个POST请求
  @POST("app/login")
  HttpApi<UserEntity> login(@Body() LoginRequest request);

  // 定义一个GET请求
  @GET("app/{userId}")
  HttpApi<UserEntity?> getUser(@Path() String userId);
}

运行构建工具以生成代码:

flutter packages pub run build_runner build

生成的信息

生成的HttpApi对象包含了以下信息:

/// 请求方法(如 POST, GET)
String method;

/// URL,包含方法和路径参数
String url;

/// 基础URL(如果有的话)
String? baseUrl;

/// 请求体(如果有的话)
Object? body;

/// 查询参数(如果有的话)
Map<String, dynamic>? queryParams;

/// 表单字段(如果有的话)
Map<String, dynamic>? fields;

/// 是否使用 `application/x-www-form-urlencoded` 编码
bool formUrlEncoded;

/// 响应类型
Type responseType;

/// JSON 反序列化函数(如果有的话)
FromJsonTransform<RESPONSE>? fromJson;

/// 其他选项,如头部信息、响应类型、接收超时、发送超时等
final HttpOptions? options;

更多关于Flutter自动生成HTTP API代码插件http_api_generator的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter自动生成HTTP API代码插件http_api_generator的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


http_api_generator 是一个用于 Flutter 的代码生成插件,它可以根据 OpenAPI/Swagger 规范自动生成 HTTP API 客户端代码。这个插件可以帮助开发者减少手动编写 API 客户端代码的工作量,并确保生成的代码与 API 规范保持一致。

安装和使用步骤

  1. 添加依赖: 首先,在你的 pubspec.yaml 文件中添加 http_api_generator 作为开发依赖。

    dev_dependencies:
      http_api_generator: ^1.0.0
    
  2. 配置生成器: 在你的项目中创建一个 build.yaml 文件,用于配置代码生成器的行为。

    targets:
      $default:
        builders:
          http_api_generator|http_api_generator:
            enabled: true
            options:
              openapi_spec: "path/to/your/openapi.yaml"  # 你的 OpenAPI 文件路径
              output: "lib/api"  # 生成的代码输出目录
    
  3. 运行代码生成器: 使用 build_runner 来运行代码生成器。

    flutter pub run build_runner build
    

    这将根据你的 OpenAPI 规范文件生成相应的 Dart 代码,并将其输出到指定的目录。

  4. 使用生成的代码: 生成器会生成一个包含所有 API 客户端代码的 Dart 文件。你可以在你的项目中使用这些生成的类来调用 API。

    import 'package:your_project/api/api_client.dart';
    
    void fetchData() async {
      final client = ApiClient();
      final response = await client.getSomeData();
      print(response);
    }
    

示例

假设你有一个 OpenAPI 规范文件 openapi.yaml,内容如下:

openapi: 3.0.0
info:
  title: Sample API
  version: 1.0.0
paths:
  /data:
    get:
      summary: Get some data
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
回到顶部