首页 > 其他分享 >使用 Alice inspector 和 Dio 进行 Flutter API 日志记录

使用 Alice inspector 和 Dio 进行 Flutter API 日志记录

时间:2022-11-04 10:59:24浏览次数:87  
标签:dio 调用 Alice alice Dio API

使用 Alice inspector 和 Dio 进行 Flutter API 日志记录

前言

有没有发现自己处于这样的情况下,当一个特性被显示或者一个方法被触发时,你必须找出哪个 API 被调用?

我就当你见过了

一种简单的方法是在终端中记录 API 调用。

但是终端很容易变得杂乱无章。为了解决这个问题,我们将使用 Alice 检查器,它将帮助我们轻松地记录和有效地共享 API 调用数据。

我们将使用 Dio 进行 API 调用。

https://pub.dev/packages/dio

正文

首先,我们将创建一个 Dio helper 类来进行所有 API 调用。

API 助手类

import 'package:connectivity/connectivity.dart';
import 'package:dio/dio.dart';
import 'package:helpwise/api/interceptor.dart';
import 'package:helpwise/my_app.dart';
import 'interceptor.dart' as interceptor;

class ApiHelper {
  ApiHelper() {
    setUpOptions();
  }
  Dio _dio = Dio();

  late BaseOptions baseOptions;

  setUpOptions() async {
    baseOptions = BaseOptions(
      baseUrl: 'https://app.helpwise.io/',
      connectTimeout: 30000,
      receiveTimeout: 30000,
      validateStatus: (status) {
        return status! < 500;
      },
    );
    _dio = Dio(baseOptions);
    _dio.interceptors
      ..add(LogInterceptor(requestBody: true))
      ..add(
        interceptor.Interceptor(
          DioConnectivityRequestRetrier(
            connectivity: Connectivity(),
            dio: _dio,
          ),
        ),
      )
      ..add(alice.getDioInterceptor());
  }

//*GET API CALL
  Future<Response> getRequest(String path) async {
    try {
      final result = await _dio.get(
        path,
      );

      return result;
    } catch (e) {
      rethrow;
    }
  }

//* POST API CALL
  Future<Response> postRequest(
    String uri, {
    data,
  }) async {
    try {
      Response response = await _dio.post(
        uri,
        data: data,
      );

      return response;
    } catch (e) {
      rethrow;
    }
  }
}

这里有基本 GET,POST api 调用。

在 setUpOptions 中,您将能够看到将拦截器添加到 Dio 对象中。

interceptors 拦截器是什么?

拦截器,因为它意味着拦截 API 调用。因此,我们在这里所做的是每次有一个 API 调用时,我们都要检查有效的令牌,并使用 LogInterceptor ()在终端中进行登录。

第二个拦截器用于检查 Internet 连接。

第三个拦截器是 Alice 拦截器,它记录所有 API 调用,并在仪表板上显示它们。

接下来,我们需要在 myApp 类中在 Materials ialApp 之前初始化 Alice

https://pub.dev/packages/flutter_alice

步骤

首先

  • 安装包
// 1. 添加 pubspec.yaml 文件

dependencies:
  flutter_alice: ^1.0.1

// 2. 安装包

$ flutter pub get

// 3. 导包

import 'package:flutter_alice/alice.dart';
  • 使用
// 1. 创建 Alice 实例

Alice alice = Alice();

// 加入 Add navigator key

MaterialApp( navigatorKey: alice.getNavigatorKey(), home: ...)

此外,为了更安全的生产应用程序显示此日志

Alice alice = Alice(
  showNotification: kDebugMode,
  showInspectorOnShake:
  kDebugMode,darkTheme: true,
);

在对象创建期间添加此属性。

效果展示

标签:dio,调用,Alice,alice,Dio,API
From: https://www.cnblogs.com/ducafecat/p/16856962.html

相关文章

  • #打卡不停更#三方库移植之NAPI开发[4]异步调用:Callback&Promise
    三方库移植之NAPI开发系列文章《HelloOpenHarmonyNAPI》、《C/C++与JS的数据类型转换》其接口都是同步的。对IO、CPU密集型任务需要异步处理。NAPI支持异步模型,提供了Pro......
  • Module Error (from ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-load
    使用uni-app报ModuleError(from./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js):检查控制台提示的xx.vue检查看......
  • 调用百度API实现身份证车牌号识别
      首先要按照百度文档中下载三个类并且导入进去,并且获取tokensafe_token(获取token)packagejar;importorg.json.JSONObject;importjava.io.BufferedReader;imp......
  • sdk、库和API了解
    转自:https://blog.csdn.net/weixin_45697314/article/details/104554941,讲的很详细1.框架 框架是针对开发人员的规范或软件产品,一般为开发更上层应用提供基础功能,可开发......
  • 2.Java API操作elasticsearch
    新建Maven工程添加依赖:<dependencies><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><ver......
  • 如何利用API FOX编写业务测试用例?
     假设管理员进行一个场景:为网站新增品牌,内容为品牌名:冬青及服务商名:胡歌,并验证是否新增成功所以:通过页面的F12查询,我们可以知道新增品牌接口,及列表品牌接口,以及品牌详情......
  • Windows 10下基于Visual Studio 2019编译配置VTK 8.2.0
    参考:https://blog.csdn.net/weixin_42694889/article/details/1159645331、下载并安装VisualStudioCommunity2019、CMake3.19.0;2、下载VTK8.2.0并解压:https://vt......
  • 实验七:基于REST API的SDN北向应用实践
    一、实验目的1.能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;2.能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验环境1.下载虚拟机软件OracleVisua......
  • 实验7:基于REST API的SDN北向应用实践
    实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。实验要求(一)基本要求编写Python程序,调用OpenDayligh......
  • ES的java端API操作
    首先简单介绍下写这篇博文的背景,最近负责的一个聚合型的新项目要大量使用ES的检索功能,之前对es的了解还只是纯理论最多加个基于postman的索引创建操作,所以这次我得了解在ja......