Skip to content

스크립트 개발 / 응답 데이터 DFF.RESP

일반 JSON 또는 텍스트 응답은 바로 return할 수 있습니다. HTTP 상태 코드, 헤더, 다운로드 파일 이름 또는 콘텐츠 유형을 제어해야 하는 경우 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(...)로 생성한 응답 객체를 직접 반환해야 합니다. 이를 다른 딕셔너리나 리스트에 포함하면 상태 코드, 헤더 또는 콘텐츠 유형이 적용되지 않습니다.

Warning

allow_304=True는 클라이언트가 캐시된 콘텐츠를 가져올 수 있게 하므로, 데이터가 자주 변경되는 경우에는 활성화하지 않아야 합니다. 사용자 정의 응답 헤더에 비밀 키나 기타 민감한 정보를 포함해서는 안 됩니다.