ClientSupport

HTTP 클라이언트 지원 클래스. Fuel HTTP 라이브러리 래퍼.

클래스 정의

abstract class ClientSupport(
    val timeOut: Int,
    val objectMapper: ObjectMapper,
)

기본 설정

설정
Content-Typeapplication/json
Timeout생성자 주입

확장 함수

String.get()

fun String.get(parameters: Parameters? = null): FuelBuilder

GET 요청 빌더 생성.

String.post()

fun String.post(request: Any? = null): FuelBuilder

POST 요청 빌더 생성.

String.put()

fun String.put(request: Any? = null): FuelBuilder

PUT 요청 빌더 생성.

String.delete()

fun String.delete(parameters: Parameters? = null): FuelBuilder

DELETE 요청 빌더 생성.

String.withMatrixVariable()

fun String.withMatrixVariable(mvs: List<Pair<String, String?>>): String

Matrix Variable 추가 (;key=value 형식).

FuelError.toResponseStatusException()

fun FuelError.toResponseStatusException(): ResponseStatusException

FuelError를 Spring ResponseStatusException으로 변환.

FuelBuilder

class FuelBuilder(
    val client: ClientSupport,
    val fuelRequest: Request,
)

메서드

메서드용도
requestBody()요청 본문 설정
requestBodyConvert()커스텀 직렬화 설정
header()헤더 설정
timeout()타임아웃 설정
authenticate()Basic Auth 설정
log()로깅 활성화
execute<RES>()요청 실행 및 응답 반환

execute() 동작

  1. 헤더, 타임아웃 설정
  2. POST/PUT이면 요청 본문 추가
  3. 응답 타입에 따른 역직렬화:
    • 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 변환