1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DjangoRestFrameworkのAPI入出力をキャメルケースにする方法

1
Last updated at Posted at 2026-03-12

Qiita技術ブログ (39).png

はじめに

Django REST Framework(DRF)は、デフォルトだとPythonのコーディングスタイルに合わせてレスポンスやリクエストボディのキーがスネークケース(snake_case)です。

例えば、以下のようなレスポンスです。

{
  "created_at": "2026-03-10T12:00:00+09:00",
  "user_books": []
}

一方で、フロントエンド(JavaScript/TypeScript)はキャメルケース(camelCase)でリクエスト・レスポンス取得を行いたいことが多いでしょう。

そのため、バックエンドがsnake_case、フロントエンドがcamelCaseという状況では、フロント側で変換処理を書いたり、APIレスポンスのキーを都度変換したりする必要が出てきます。

この記事では、DRFの処理側はsnake_caseのまま、API入出力だけをcamelCaseに変換する方法を紹介します。

結論

DRFのAPI入出力をcamelCaseにするにはdjangorestframework-camel-caseのライブラリを使うのが一番シンプルです。

このライブラリを使うと、

  • レスポンスJSONを snake_case → camelCase
  • リクエストJSONを camelCase → snake_case
    に自動変換してくれます。

つまり、Django / DRFのコードは snake_caseのままフロントエンドはcamelCaseでAPIを扱えるという理想的な構成になります。

導入手順

1. ライブラリのインストール

まずはpipでインストールします。

pip install djangorestframework-camel-case

※ 執筆時点で最新のversion1.4.2を使用しています。

2. settings.pyの設定

Renderer設定(レスポンス用), Parser設定(リクエスト用), Middleware設定(クエリパラメータ用)のために、REST_FRAMEWORKの設定に以下の追記をお願いします。

settings.py
REST_FRAMEWORK = {
    'DEFAULT_RENDERER_CLASSES': (
+        'djangorestframework_camel_case.render.CamelCaseJSONRenderer',
+        'djangorestframework_camel_case.render.CamelCaseBrowsableAPIRenderer',
          # 他のRENDERER...
    ),
    'DEFAULT_PARSER_CLASSES': (
+        'djangorestframework_camel_case.parser.CamelCaseFormParser',
+        'djangorestframework_camel_case.parser.CamelCaseMultiPartParser',
+        'djangorestframework_camel_case.parser.CamelCaseJSONParser',
         # 他のPARSER...
    ),
}

Middlewareに追記

settings.py
MIDDLEWARE = [
    # 他のmiddleware...
+   'djangorestframework_camel_case.middleware.CamelCaseMiddleWare',
]

以上で完了です。

実際にレスポンスを比較して確認してみる

djangorestframework-camel-case導入前

DRFのデフォルト状態では、レスポンスはスネークケースになります。

スクリーンショット 2026-03-10 18.13.54.png

djangorestframework-camel-case導入後

自動的にcamelCaseに変換されますね。
スクリーンショット 2026-03-10 18.35.16.png

まとめ

今回はDjangoRestFrameworkのAPI入出力をキャメルケースにする方法についてまとめてみました。

DRFを使ったAPI開発でフロントエンドとの命名規則を統一したい場合は、ぜひ導入を検討してみてください。

ご拝読ありがとうございました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?