コンテンツにスキップ

スクリプト開発 / レスポンスデータ DFF.RESP

通常の JSON またはテキストレスポンスは直接 return できます. HTTP ステータスコード, Header, ダウンロードファイル名, コンテンツタイプを制御する必要がある場合は, DFF.RESP(...) を使用します.

ディスクファイルには DFF.RESP_FILE(...), MB 級のデータには DFF.RESP_LARGE_DATA(...) を使用してください.

パラメータ

パラメータ 必須 / デフォルト値 説明
data 任意の JSON シリアライズ可能な値 必須 レスポンスボディ
status_code int 200 HTTP ステータスコード
content_type str None レスポンスボディタイプ. 例: json, text, html
headers dict None 追加のレスポンスヘッダー. Content-Type を含める必要はありません
allow_304 bool False ブラウザが 304 キャッシュを使用することを許可するかどうか
download bool / str False True でデフォルトファイル名を生成, 文字列でファイル名を指定. 有効にすると content_type は無効になります
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
def html_response():
    return DFF.RESP('<h1>Hello</h1>', content_type='html')

def json_response():
    return DFF.RESP('{"hello": "world"}', content_type='json')

def download_response():
    return DFF.RESP('Some text', download='article.txt')

def header_response():
    return DFF.RESP('ok', headers={'X-Author': 'Tom'})

def not_found_response():
    return DFF.RESP({'error': 'not found'}, status_code=404)

レスポンスの構築時に data がシリアライズ可能かどうか検証されます. シリアライズに失敗した場合, または downloaddata=None を同時に使用した場合, Func レスポンスは失敗します.

DFF.RESP(...) で作成したレスポンスオブジェクトは直接返す必要があります. それを他の dict や list に埋め込んでも, ステータスコード, Header, コンテンツタイプは適用されません.

Warning

allow_304=True にするとクライアントがキャッシュされたコンテンツを取得する可能性があります. データが頻繁に変化する場合は有効にしないでください. カスタムレスポンス Header には秘密鍵やその他の機密情報を含めないでください.