Flask Academy · レッスン

Content-TypeとAcceptヘッダー

JSONレスポンスがapplication/jsonを示す理由を学びます

レッスン 4/413 ステップ

「Content-TypeとAcceptヘッダー」はCoddyKit上の無料Flask Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはFlask Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Flask Academyコースには全4レッスンが含まれています。

ヘッダーが意味を伝える

レスポンスは本文だけではありません。HTTPヘッダーが本文について説明し、その中でも2つのヘッダーがクライアントとサーバー間でJSONがどうやり取りされるかを決めます。📨

Content-Typeが示すもの

Content-Typeヘッダーは、送信する本文の形式を示します。JSONレスポンスの場合、その値はapplication/jsonです。

Content-Type: application/json

jsonifyが自動設定する

このヘッダーを手動で設定することはほとんどありません。jsonifyを呼び出すと、Flaskがapplication/jsonを自動的に付加するため、クライアントは常に正しく解析できます。

クライアントにとって重要な理由

ブラウザーやライブラリはContent-Typeを読み、本文の扱い方を決めます。application/jsonであることが分かると、テキストを使用可能なオブジェクトに解析します。

型が違えば結果も違う

JSONテキストをtext/htmlのプレーンテキストとして返すと、クライアントが解析できないことがあります。本文が正しく見えても、必要な情報がないため自動デコードに失敗します。

Acceptヘッダーが示すもの

リクエストには、クライアントが求める形式を列挙したAcceptヘッダーを含められます。これは希望を伝えるもので、どのレスポンス形式が最適かをサーバーに知らせます。

Accept: application/json

Content-TypeとAcceptの違い

この2つを正しく区別しましょう。Content-Typeは現在のメッセージの本文を説明し、Acceptはクライアントが返してほしい形式を示します。

FlaskでAcceptを読み取る

リクエストを調べて、呼び出し元の希望に応えることができます。request.accept_mimetypesプロキシから、そのヘッダーに列挙された形式を確認できます。

request.accept_mimetypes["application/json"]

コンテンツネゴシエーション

クライアントが要求した形式で提供することをコンテンツネゴシエーションと呼びます。APIはAcceptに応じて、同じルートからJSONまたはHTMLを返せます。

リクエスト本文にも型がある

受信するリクエストにもContent-Typeが含まれます。クライアントがapplication/jsonを送信すると、Flaskは本文がJSONであることを認識し、request.get_jsonで解析できます。

デフォルトを信頼する

ほとんどのJSON APIでは、jsonifyがContent-Typeを処理してくれれば十分です。1つのルートで複数の形式を提供する必要がある場合にだけ、Acceptを利用しましょう。

簡単な確認

JSONのやり取りを形作る2つのヘッダーを区別しましょう。

まとめ

Content-Typeは本文の形式を示し、Acceptは希望する形式を要求すること、そしてjsonifyがapplication/jsonを設定するため、JSONクライアントがそのまま動作することを学びました。🎉

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「Content-TypeとAcceptヘッダー」レッスンは無料ですか?

はい。「Content-TypeとAcceptヘッダー」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Flask Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Flask Academyコースには全4レッスンが含まれています。

「Content-TypeとAcceptヘッダー」で何を学びますか?

JSONレスポンスがapplication/jsonを示す理由を学びます ブラウザで直接実行するハンズオンコードでFlask Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Flask Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのFlask Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「Content-TypeとAcceptヘッダー」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このFlask Academyレッスンでコードを書いて実行できますか?

はい。すべてのFlask Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 辞書をjsonifyする
  2. リストとネストしたデータを返す
  3. JSONレスポンスにステータスコードを設定する
  4. Content-TypeとAcceptヘッダー
← Flask Academyに戻る