【FastAPI】リクエスト・レスポンスヘッダーを追加【header】
当ページのリンクには広告が含まれています。

FastAPI
でのheader
のパラメーターの受け取り方をご紹介いたします。
header
の操作は、JWT
やtoken
認証などで用いられる必須の機能です。
今回は、ヘッダーのリクエスト・レスポンスの記載方法についてご紹介いたします。
あわせて読みたい


ヘッダーのパラメータ – FastAPI
FastAPI framework, high performance, easy to learn, fast to code, ready for production
FastAPIの基礎についての記事まとめ
目次
リクエストヘッダー
リクエストヘッダーを追加するためにはfastapi
からHeader
をインポートします。
基本形
https://fastapi.tiangolo.com/ja/tutorial/header-params/?h=header#header
from typing import Optional
from fastapi import Header
~~~
@router.get('/header')
def example(custom_header: Optional[str] = Header(None)):
return f"{custom_header}"
作成したAPI
のドキュメントを見てみましょう。Curl
部分を確認してみると-H
でヘッダーが追加されていますね。

重複するヘッダーの受取り方
同じヘッダーで複数の値を受け取る場合にはリストで受け取れるようにします。
https://fastapi.tiangolo.com/ja/tutorial/header-params/?h=header#_3
from typing import Optional, List
~~~
custom_header: Optional[List[str]] = Header(None)
List
を用いるだけです。確認してみましょう。

リクエストヘッダーを確認すると・・・
-H 'custom-header: header1,header2,header3'
受けとれてますね!
レスポンスヘッダー
https://fastapi.tiangolo.com/ja/advanced/response-headers/?h=response+header#response-headers
レスポンスヘッダーは関数の引数にResponse
を用い、レスポンスヘッダーを付与します。
関連記事


【FastAPI】カスタムレスポンスの追加やドキュメントの記述
FastAPIは、基本的にFastAPI側でよしなに変換してJSON形式で返してくれますが、別のレスポンスが必要な場合があります。例えば テキストリストhtml・xmlファイル 等が挙…
response.headers['response_name'] = "response_value"
形式で追加します。
from fastapi import Response
~~~
@app.get('/header')
def custom_header(
response: Response,
custom_header: Optional[List[str]] = Header(None)
):
response.headers['custom_response_header'] = ". ".join(custom_header)
return f"{custom_header}"
ドキュメントを確認してみましょう。

200
のResponse headers
を確認すると、追加されていることが確認できました!
FastAPIの基礎についての記事まとめ
コメント