Flutter网络代理插件proxied的使用
Flutter网络代理插件proxied的使用
Proxied
此插件旨在作为一个统一响应类型类的包装器。
它有两个主要功能:
- AuthorizedProxy
- PublicProxy
AuthorizedProxy
当您有一个需要使用的授权装饰器时,可以使用此功能。它对于在实际进行API调用之前执行拦截器工作非常有用。然而,使用此功能时存在一个限制。 您需要了解正在使用的后端系统,以确保根据API的标准正确实现“IsAuthorized”的逻辑。
示例代码:
import 'package:example/api/users_api.dart';
import 'package:example/decorators/authorize_decorator.dart';
import 'package:proxied/proxied.dart';
// 获取用户列表
Future<ResponseType> getUsers() async {
// 调用 authorizedProxy 方法
final response = await Proxy().authorizedProxy(
UsersApi().getUsers, // 需要调用的API方法
isAuhorizedModel: 'token', // 授权模型
decorator: AuthorizationDecorator(), // 授权装饰器
);
// 返回封装后的结果
final resp = ResponseType(error: response.error, results: response.results);
return resp;
}
// 带参数获取用户列表
Future<ResponseType> getUsersWithParams() async {
// 调用 authorizedProxy 方法,并传递参数
final response = await Proxy().authorizedProxy(
UsersApi().getUsersWithParams,
params: ['test user'], // 参数
isAuhorizedModel: 'token',
decorator: AuthorizationDecorator(),
);
final resp = ResponseType(error: response.error, results: response.results);
return resp;
}
// 获取用户失败的情况
Future<ResponseType> getUsersFailed() async {
// 模拟授权失败的情况
final response = await Proxy().authorizedProxy(
UsersApi().getUsers,
isAuhorizedModel: 'failed Token', // 失败的授权模型
decorator: AuthorizationDecorator(),
);
final resp = ResponseType(error: response.error, results: response.results);
return resp;
}
PublicProxy
此功能仅用于将代码包装在统一响应中,并确保有try/catch块,以便处理我们的端点。
示例代码:
import 'package:example/api/public_api.dart';
import 'package:proxied/proxied.dart';
// 获取公共数据
Future<ResponseType> getPublicData() async {
// 调用 publicProxy 方法
final response = await Proxy().publicProxy(PublicApi().getPublicData);
// 返回封装后的结果
final resp = ResponseType(error: response.error, results: response.results);
return resp;
}
更多关于Flutter网络代理插件proxied的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复