nRequest Interceptor 작업하기 부분 storage 질문드립니다.
340
작성한 질문수 2
여기서 data.dart에 있는 storage를 사용하지 않고 새로 생성해서 사용하는 이유가 무엇인가요??
class CustomIntercepter extends Interceptor {
final FlutterSecureStorage storage;
CustomIntercepter({required this.storage});
// 1) 요청을 보낼 때
@override
void onRequest(
RequestOptions options, RequestInterceptorHandler handler) async {
print('[REQ] [${options.method}] ${options.uri}');
if (options.headers['accessToken'] == 'true') {
options.headers.remove('accessToken');
final token = await storage.read(key: ACCESS_TOKEN_KEY);
options.headers.addAll({'authorization': 'Bearer $token'});
}
return super.onRequest(options, handler);
}
// 2) 응답을 받을 때
// 3) 에러가 났을 때
}
답변 1
3
안녕하세요!
다시한번 코드를 읽어보시면 새로 생성은 없습니다!
외부에서 주입받고 있을 뿐입니다.
감사합니다!
1
Dependency Injection 테크닉입니다. 하나의 인스턴스를 돌려쓰면서 불필요한 신규 생성을 막아서 메모리를 덜 쓰고 버그를 방지 할 수 있습니다 (OOP를 이용하면 실제로 같은 클래스의 '다른' 인스턴스를 사용하다 실수하는 경우가 많습니다). 그보다 더 중요한건 테스트코드 작성할때 mocking이 매우 편리합니다.
Isar 마지막 업데이트는 2년전입니다.
0
31
0
FlutterSecureStorage 질문
0
32
0
Dio onError Interceptor 만드는 부분에 질문이 있습니다.
0
80
2
관리자 기능에 대한 질문
0
100
2
part 'restaurant_model.g.dart';
0
92
1
36강. dio 인터셉터에 storage를 전달하는 코드가 이해 안되는데요. 도움 부탁드립니다.
0
56
2
2번 반환 상황 관련 질문
0
61
2
riverpod 3.0
0
140
2
Asset folder??
0
83
2
디자이너와 협업 시 프레임 크기 설정 관련 질문
0
114
2
FutureProvider, StateNotifierProvider 선택 기준
0
70
2
컴포넌트 모델화
0
64
2
쿼리 파라미터
0
84
2
화면 안보임
0
68
2
PaginationListView
0
54
1
강의중 37.Dio onErrorInterceptor 작업하기 dio 관련 질문입니다.
0
103
2
프로토타입이미지
0
62
2
여러 객체를 상태 관리하는 방법에 대한 질문
0
85
2
장바구니 결제하기 응답이 500이 옵니다.
0
105
2
removeFromBasket에서 await patchBasket()을 마지막에 하면 에러나는거 아닌가요?
0
67
2
이 두가지는 완전히 동일한 기능인가요?
0
106
3
내부 코드를 작성하지 않은 CursorPaginationLoading가 어떻게 로딩상태를 갖는지 잘 모르겠습니다...
0
77
2
_SplashScreenState에서 storage를 late로 호출해서 한번만 불러와도 되나요?
0
86
2
코딩 작성 순서 관련 질문
0
88
2





