개념
새로운 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는 상태를 비저장하므로 상태 유지와 관련된 필드를 사용해서는 안된다.
적용
이번 작업은 간단한 요청이어서 이 중에서 쿼리 매개 변수를 이용해서 작업했다. 하지만 다시 생각해보면 리소스보다는 메타정보에 더 가까운 것 같아 비슷한 작업을 한다면 헤더로 옮길 것 같다.
쿼리 작업은 어려운 내용이 아니라서 생략한다.
'백엔드 개발' 카테고리의 다른 글
#043. 쿼리개선: like 쿼리는 왜 인덱스를 타지않았을까? 🤔 5000ms -> 0.05 ms 개선하기 (0) | 2023.07.01 |
---|---|
#042. 리팩터링: 멱등성 있는 API 만들기 (feat. 토글기능 구현하기) (0) | 2023.06.24 |
#038. 인프라: 사이드 프로젝트 호스팅 서비스 이사 기록 (1) | 2023.06.09 |
#037. 리팩터링: one-size fits all API 만들기 (0) | 2023.06.01 |
#036. 쿼리개선: insert 성능과 테이블 구조 (Index 정리하기) (0) | 2023.05.13 |