Flutter API客户端插件wishfly_api_client的使用

发布于 1周前 作者 gougou168 来自 Flutter

Flutter API客户端插件wishfly_api_client的使用

安装

要将Wishfly API客户端添加到您的Flutter项目中,在pubspec.yaml文件的dependencies:部分下添加以下行:

wishfly_api_client: ^<最新版本>

然后运行flutter pub get以获取该包。

使用

在使用Wishfly API客户端之前,您需要导入它:

import 'package:wishfly_api_client/wishfly_api_client.dart';

接下来,使用您的API密钥创建一个客户端实例:

final client = WishflyApiClient(apiKey: 'your-api-key');

现在您可以使用此实例与Wishfly API进行交互。例如,获取所有项目:

await client.getProjects();

或者在项目中创建功能请求:

await client.createWish(
    request: WishRequestDto(
        title: 'My wish',
        description: 'My wish description', // 或者为null
        projectId: 0, // 从Wishfly管理员处获取的项目ID
    ),
);

完整示例代码

以下是一个完整的示例代码,展示了如何使用Wishfly API客户端:

import 'package:wishfly_api_client/wishfly_api_client.dart';
import 'package:wishfly_shared/wishfly_shared.dart';

void main() async {
  // 您的项目ID
  final yourProjectId = 0;

  final apiClient = WishflyApiClient(apiKey: "your-api-key");

  // 获取项目列表
  final projects = await apiClient.getProjects();
  print(projects);

  // 获取特定项目的详细信息
  final project = await apiClient.getProject(id: yourProjectId);
  print(project);

  // 获取项目标签
  final labels = await apiClient.getProjectLabels(id: yourProjectId);
  print(labels);

  /// 更新愿望
  await apiClient.updateWish(
    request: WishUpdateRequestDto(
      id: 0, // 愿望ID
      labels: [labels.first.id],
      projectId: yourProjectId,
    ),
  );

  /// 获取当前项目计划
  final projectPlan = await apiClient.getProjectPlan(id: yourProjectId);
  print(projectPlan);

  /// 创建愿望
  await apiClient.createWish(
    request: WishRequestDto(
      title: "My wish",
      description: "My wish description",
      projectId: yourProjectId,
    ),
  );
}

更多关于Flutter API客户端插件wishfly_api_client的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter API客户端插件wishfly_api_client的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用wishfly_api_client插件的详细步骤和代码示例。假设你已经有一个Flutter项目,并且希望集成并使用wishfly_api_client来调用API。

1. 添加依赖

首先,在你的pubspec.yaml文件中添加wishfly_api_client依赖:

dependencies:
  flutter:
    sdk: flutter
  wishfly_api_client: ^latest_version  # 请替换为实际的最新版本号

然后运行flutter pub get来安装依赖。

2. 配置API客户端

你需要配置API客户端,包括设置基本URL、超时和任何必要的拦截器。以下是一个配置示例:

import 'package:wishfly_api_client/wishfly_api_client.dart';

// 配置API客户端
final apiClient = ApiClient(
  baseUrl: 'https://api.example.com',  // 替换为你的API基本URL
  timeout: Duration(seconds: 30),
  interceptors: [
    // 添加任何你需要的拦截器,例如日志拦截器
    LoggingInterceptor(),
  ],
);

3. 定义API服务

使用ApiClient生成的服务类来定义API接口。以下是一个示例服务类,用于调用GET和POST请求:

import 'package:dio/dio.dart';
import 'package:wishfly_api_client/wishfly_api_client.dart';

part 'api_service.g.dart';  // 这是由Wishfly API Client生成的代码文件

@ApiService(client: apiClient)
abstract class MyApiService {
  @GET('/endpoint')
  Future<Response<dynamic>> getExampleData();

  @POST('/endpoint')
  @Body(MyRequestBody)
  Future<Response<dynamic>> postExampleData(@Body() MyRequestBody body);
}

// 定义请求体数据模型
@DataClass()
class MyRequestBody {
  String field1;
  int field2;

  MyRequestBody({required this.field1, required this.field2});
}

注意:@DataClass() 注解是Wishfly API Client的一部分,用于生成数据类。你可能需要根据实际情况调整数据模型。

4. 生成服务代码

运行Wishfly API Client的代码生成命令。假设你使用的是Dart的build_runner

flutter pub run build_runner build

这将会生成api_service.g.dart文件,其中包含MyApiService的实现。

5. 使用API服务

现在你可以在你的Flutter应用中使用生成的API服务:

import 'package:flutter/material.dart';
import 'api_service.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Wishfly API Client Example'),
        ),
        body: Center(
          child: MyApiWidget(),
        ),
      ),
    );
  }
}

class MyApiWidget extends StatefulWidget {
  @override
  _MyApiWidgetState createState() => _MyApiWidgetState();
}

class _MyApiWidgetState extends State<MyApiWidget> {
  late MyApiService apiService;
  String? responseData;

  @override
  void initState() {
    super.initState();
    apiService = MyApiService();
    fetchData();
  }

  void fetchData() async {
    try {
      // 调用GET请求
      Response<dynamic> response = await apiService.getExampleData();
      setState(() {
        responseData = response.data.toString();
      });

      // 调用POST请求
      MyRequestBody body = MyRequestBody(field1: 'value1', field2: 123);
      Response<dynamic> postResponse = await apiService.postExampleData(body: body);
      print('Post response: ${postResponse.data}');
    } catch (e) {
      print('Error: $e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        Text('Response Data:'),
        Text(responseData ?? 'Loading...'),
      ],
    );
  }
}

以上代码展示了如何在Flutter中使用wishfly_api_client插件来配置API客户端、定义API服务、生成服务代码并最终在UI中调用API。希望这能帮助你顺利集成和使用wishfly_api_client插件。

回到顶部