如何在Retrofit Flutter中添加承载令牌授权。
这里是改装服务
@RestApi(baseUrl: "https://***.****.xyz/api/")
abstract class ApiService{
factory ApiService(Dio dio) => _ApiService(dio);
@POST("auth/login")
Future<AuthModel> login(@Body() Map<String,dynamic> map);
@POST("auth/singup")
Future<AuthModel> singup(@Body() Map<String,dynamic> map);
@GET('{id}')
Future<UserModel> getUser( @Path() String id);
}
然后创建Dio并添加到GetIt并插入ApiService。
var getIt = GetIt.I;
void locator(){
Dio dio = Dio();
getIt.registerLazySingleton(() => dio);
ApiService apiService = ApiService(getIt.call());
getIt.registerLazySingleton(() => apiService);
Repository repository = Repository(getIt.call());
getIt.registerLazySingleton(() => repository);
LoginCubit loginCubit = LoginCubit(getIt.call());
getIt.registerLazySingleton(() => loginCubit);
GetProfileCubit getProfileCubit = GetProfileCubit(getIt.call());
getIt.registerLazySingleton(() => getProfileCubit);
}
和创建存储库
class Repository{
final ApiService _apiService;
Repository(this._apiService);
Future<AuthModel> logIn(Map<String,dynamic> map) => _apiService.login(map);
Future<AuthModel> singUp(Map<String,dynamic> map) => _apiService.singup(map);
Future<UserModel> getUser(String id) => _apiService.getUser(id);
}
请回答我的问题,先生。对不起我的英语。
2条答案
按热度按时间2uluyalo1#
这不是最佳方法,但应该可以正常工作。
按如下方式更改
ApiService
类:同时更改
Repository
类:快乐编码TT
5gfr0r5j2#
Retrofit使用Dio,因此您可以实现Dio拦截器。
下面是一个如何创建拦截器的示例。
那么你必须将拦截器添加到Dio中
Linkedin有一个很好的职位与更多的配置,可能是有趣的.