본문 바로가기
백엔드 개발

#039. 리팩터링: 히든 필드로 기존 API에 기능 추가하기

by iamjoy 2023. 6. 15.

개념

새로운 API 를 생성하지 않고 히든 필드를 이용해서 정보를 추가해 특정 기능을 하도록 작동시킬 수 있다.
운영 티켓을 치면서 API를 생성할 일이 많은데 비슷비슷한 API를 계속해 만들어내다보면 API 관리가 어려워진다.
지난 번 글 (one-size fits all)처럼 클라이언트의 요청에 따라 다른 스키마를 내려주도록 작업하는 방법도 있고,
비슷하게 특정 작업만을 위한 히든 필드를 입력하도록 해 기존의 API를 활용해서 기능을 추가할 수 있다.
히든 필드를 전달하는 방법은 크게 두 가지가 있다.
헤더 정보: API 요청이나 응답에 사용자 지정 헤더를 포함시켜 추가 정보를 전달할 수 있다. 예를 들어, 각 요청을 고유하게 식별하기 위해 "X-Request-ID" 같은 헤더를 포함할 수 있다.
쿼리 매개 변수: 추가 데이터가 작고 URL에 포함할 수 있는 경우 쿼리 매개변수를 사용할 수 있다. 예: https://api.example.com/resource?id=123&name=John. 
다만 rest api는 상태를 비저장하므로 상태 유지와 관련된 필드를 사용해서는 안된다.

적용

이번 작업은 간단한 요청이어서 이 중에서 쿼리 매개 변수를 이용해서 작업했다. 하지만 다시 생각해보면 리소스보다는 메타정보에 더 가까운 것 같아 비슷한 작업을 한다면 헤더로 옮길 것 같다.
쿼리 작업은 어려운 내용이 아니라서 생략한다.