ClientSupport
HTTP 클라이언트 지원 클래스. Fuel HTTP 라이브러리 래퍼.
클래스 정의
abstract class ClientSupport(
val timeOut: Int,
val objectMapper: ObjectMapper,
)기본 설정
| 설정 | 값 |
|---|---|
| Content-Type | application/json |
| Timeout | 생성자 주입 |
확장 함수
String.get()
fun String.get(parameters: Parameters? = null): FuelBuilderGET 요청 빌더 생성.
String.post()
fun String.post(request: Any? = null): FuelBuilderPOST 요청 빌더 생성.
String.put()
fun String.put(request: Any? = null): FuelBuilderPUT 요청 빌더 생성.
String.delete()
fun String.delete(parameters: Parameters? = null): FuelBuilderDELETE 요청 빌더 생성.
String.withMatrixVariable()
fun String.withMatrixVariable(mvs: List<Pair<String, String?>>): StringMatrix Variable 추가 (;key=value 형식).
FuelError.toResponseStatusException()
fun FuelError.toResponseStatusException(): ResponseStatusExceptionFuelError를 Spring ResponseStatusException으로 변환.
FuelBuilder
class FuelBuilder(
val client: ClientSupport,
val fuelRequest: Request,
)메서드
| 메서드 | 용도 |
|---|---|
requestBody() | 요청 본문 설정 |
requestBodyConvert() | 커스텀 직렬화 설정 |
header() | 헤더 설정 |
timeout() | 타임아웃 설정 |
authenticate() | Basic Auth 설정 |
log() | 로깅 활성화 |
execute<RES>() | 요청 실행 및 응답 반환 |
execute() 동작
- 헤더, 타임아웃 설정
- POST/PUT이면 요청 본문 추가
- 응답 타입에 따른 역직렬화:
- String: responseString()
- Unit: responseUnit()
- 기타: jacksonDeserializerOf()
LogMessage
data class LogMessage(
var enable: Boolean,
var requestName: String?,
private val logger: Logger,
)요청 로깅 설정.
특징
- Fuel 라이브러리: Kotlin HTTP 클라이언트
- 빌더 패턴: 유연한 요청 구성
- Jackson 통합: 자동 JSON 직렬화/역직렬화
- 타임아웃 처리: SocketTimeoutException → 408 변환