ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • RESTAPI 이력감지
    개발/java 2024. 8. 19. 16:33

    상황

    하나의 서비스 내에 여러 api가 호출이 되고 있다. 

     

    조건

    서비스의 공통 키를 기준으로 api 이력을 조회가 가능하게 파이프를 묶는다 

     

    방법 

    1.RequestBodyAdviceAdapter를 통해 Controller의 parameter를 읽어 공통 키를 ThreadLocal에 등록한다 

    2.RestTemplete을 config에 추가하고 interceptor를 처리할 class를 등록한다. 

    3.interceptor의 경우 httpStatusCode를 통해 동작을 하는게 일반적인데 공통의 Model이 있다면 변경하여 사용한다. 
    4.필요한  사항들을 HttpRequest request을 통해 받아서 DB 적재 한다 

    5.작업이 완료가 되면 ThreadLocal을 clear한다 

     

     

    cf) spring의 경우 싱글톤이므로 controller을 parameter를 한번 읽으면 사라지게 되어있다 그러므로 inputstream을 읽을때 캐시에 담아 재활용 가능하게 구현해야한다. 

    Filter 내 HttpServletRequestWrapper 를 구현하여 삽입한다 HttpServletRequestWrapper의 getinputStream 내 cachedBytes를 두어 재활용하는 구조를 만든다 

     

    '개발 > java' 카테고리의 다른 글

    api retry하기  (0) 2024.08.28
    Exception 분리  (0) 2024.08.19
    map vs flatmap  (0) 2022.01.04
    익명클래스 실용편  (0) 2022.01.01
    익명클래스  (1) 2022.01.01

    댓글

Designed by Tistory.