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

2024. 11. 4. 14:30·Library & Runtime/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로 변환한다.

반응형

'Library & Runtime > React' 카테고리의 다른 글

[React/S3] 이미지 저장 구현 (+ CORS 에러 해결)  (2) 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
'Library & Runtime/React' 카테고리의 다른 글
  • [React/S3] 이미지 저장 구현 (+ CORS 에러 해결)
  • camelCase 요청 데이터를 snake_case로 변환하기
  • [React] React Router 총정리
  • [React] React Quill 사용하기 & HTML 렌더링하기
올콩
올콩
콩 심은 데 콩 난다
  • 올콩
    콩스토리
    올콩
  • 전체
    오늘
    어제
    • 분류 전체보기 (146) N
      • SSAFY (10)
      • Algorithm (72) N
        • 이론 (5)
        • 백준 (BOJ) (66) N
        • 프로그래머스 (1)
      • Language (9)
        • JavaScript (0)
        • TypeScript (0)
        • Java (9)
        • Python (0)
      • Library & Runtime (15)
        • React (13)
        • Node.js (2)
      • Framework (9)
        • 이론 (2)
        • Next.js (3)
        • Vue (4)
      • DevOps (3)
        • Git (3)
      • WEB (18) N
        • HTML (9)
        • error (7) N
        • etc (2)
      • Computer (5)
        • 자격증 (2)
        • tip (2)
        • etc (1)
      • CS (5)
        • Network (1)
        • Blockchain (4)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    딕셔너리
    dfs
    Algorithm
    카카오맵
    github
    React
    bfs
    알고리즘
    html5
    싸피
    Java
    티스토리챌린지
    강의
    재귀
    vue
    SSAFYcial
    자바
    블록체인
    오블완
    Next.js
    우선순위큐
    백준
    SSAFY
    DP
    kakaomap
    누적합
    해시
    Error
    파이썬
    렌더링최적화
  • 최근 댓글

  • 최근 글

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

티스토리툴바