본문 바로가기
🍃 Language/Kotiln

[Kotlin] 굉장히 초라한 API 설계..와 구조? (+ JSON 생성기)

by 카프리썬_ 2023. 6. 18.
728x90
728x90

점점 더워져서 그런지 의욕이 없고, 의지가 없이 쳐지는 일상이다..ㅜㅜ

그러던 중 요즘 하고 있는 코틀린 api개발 관련해서 간단하게 기록해볼까한다...

 

 

내가 직접 짰던 코드를 바탕으로 위 다섯가지들의 연결관계들의 흐름을 어떻게 설계했는지 간단하게 알아보려고 한다. 

 

아래와 같이 몇가지 컴포넌트들로 구성된다.

1. Resource  

2. Response 

3. DTO  

4. Service  

5.Repository  

간략하게 resouce는 요청포맷, reponse는 응답포맷을 정의하는걸로 보면되고, DTO는 응답포맷에 들어가는 data를 정의한다고 보면 된다. 그리고 Service가 주로 Repository에서 db에서 쿼리한 결과를 바탕으로 주된 동작방식을 구현한다고 이해하면 될것 같다. 

 

Resource에서는 endpoint 설계를 한다.  어떤 request를 받고, 어떤 response를 반환할지 구성한다. 

예를 들어, 제가 짰던 코드를 바탕으로 풀어보자면 이렇다.

Resource에서는 api/new/recommend-itmes 라는 endpoint를 설계했다.

RequestMapping에서 endpoint의 접두사를 /api/new/로 정의했고, 그중에 구현할 endponint는 GetMapping을 통해 recommend-items라고 정의했다.  그리고 userId를 request를 받고, NewResponse라는 response를 반환한다고 구성했다.

 

Response에서는 data class로 응답결과를 정의한다.

특히 @field 어노테이션을 통해 각 파라미터들을 선언할 수 있고, DTO라는 데이터 객체를 만들어서 데이터결과를 모듈화 시킬수도 있다. 

 

Service에서는 주요 동작방식을 설계한다. 

예를 들어, db를 찌를 결과가 필요하다면, Repository에 접근해 쿼리결과를 리턴하는 동작을 구현한다.

그래서 최종적으로 response할 포맷으로 만드는 동작까지 구현한다. 

 

이상..정말 매우 매우 매우 간략하게 어떤 프로세스로 API가 구현되는지 큰그림을 기록해봤다..(초라..)

컨디션 난조로 인해 일단은 글은 여기에서 마무리하도록 하고..

앞으로 코루틴에 대해서 조금 더 공부해볼 생각이다!  (생각만한다 내자신!ㅠ)

 

 

 

728x90
반응형