snake_case 응답 데이터를 camelCase로 변환하기

2024. 11. 4. 14:30·React
반응형

여태까지 백엔드는 Spring(Java), 프론트엔드는 React(JavaScript/TypeScript)를 사용해서 둘 다 camelCase를 썼었다.

그래서 이런 상황을 겪을 일이 없었는데, 이번에는 백엔드에서 파이썬을 사용하고 있어 이런 문제를 겪었다.

 

파이썬에서는 snake_case를 주로 사용해서 백엔드에서 응답으로 오는 데이터의 key가 snake_case로 작성되어 있었다.

프론트엔드에서는 camelCase로 작성하고 있어서 어떻게 해야 하나 싶었는데 이를 변환해 주는 라이브러리를 찾았다.

 

🐫 camelcase-keys

  • yarn, npm
yarn add camelcase-keys

위 패키지를 설치해서 사용하면 된다.

우리 프로젝트의 경우, 모든 응답의 데이터 key를 snake_case에서 camelCase로 바꿔줄 필요가 있었기에 axios의 interceptor를 활용했다.

import axios from 'axios';
import camelcaseKeys from 'camelcase-keys';

const axiosInstance = axios.create({
  baseURL: import.meta.env.VITE_API_URL,
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json',
  },
  withCredentials: true,
});

axiosInstance.interceptors.response.use(
  (response) => {
    response.data = camelcaseKeys(response.data, { deep: true });
    return response;
  },
  (error) => {
    return Promise.reject(error);
  }
);

export default axiosInstance;

 

deep: true 옵션을 사용하면 객체의 모든 중첩 구조에서도 snake_case를 camelCase로 변환한다.

반응형

'React' 카테고리의 다른 글

[React/S3] 이미지 저장 구현 (+ CORS 에러 해결)  (0) 2024.11.16
camelCase 요청 데이터를 snake_case로 변환하기  (0) 2024.11.05
[React] React Router 총정리  (0) 2024.08.26
[React] React Quill 사용하기 & HTML 렌더링하기  (0) 2024.08.21
'React' 카테고리의 다른 글
  • [React/S3] 이미지 저장 구현 (+ CORS 에러 해결)
  • camelCase 요청 데이터를 snake_case로 변환하기
  • [React] React Router 총정리
  • [React] React Quill 사용하기 & HTML 렌더링하기
올콩
올콩
콩 심은 데 콩 난다
  • 올콩
    콩스토리
    올콩
  • 전체
    오늘
    어제
    • 분류 전체보기 (196) N
      • SSAFY (10)
      • Algorithm (114) N
        • 이론 (6)
        • 백준 (BOJ) (107) N
        • 프로그래머스 (1)
      • Trouble Shooting (9)
      • Frontend (6)
      • React (17)
      • Next.js (4)
      • Vue (4)
      • Node.js (2)
      • HTML (9)
      • DevOps (4)
        • Git (4)
      • Language (9)
        • JavaScript (0)
        • Java (9)
      • Embedded (1)
      • CS (5)
        • Network (1)
        • Blockchain (4)
      • 자격증 (2)
  • 블로그 메뉴

    • GitHub
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    bfs
    Java
    백준
    Algorithm
    중복조합
    순열
    싸피
    알고리즘
    html5
    백트래킹
    Error
    Heap
    오블완
    중복순열
    SSAFYcial
    블록체인
    React
    힙
    SSAFY
    dfs
    Next.js
    파이썬
    구현
    수학
    브루트포스
    티스토리챌린지
    우선순위큐
    DP
    강의
    재귀
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
올콩
snake_case 응답 데이터를 camelCase로 변환하기
상단으로

티스토리툴바