21.22 INITIALIZE_OUTPUTプロシージャ

このプロシージャは、出力インタフェースを初期化します。次に示すパラメータを変更する場合のみ、このプロシージャをコールする必要があります。出力は最初、パラメータの表で説明されているデフォルトですでに構成されています。

構文

APEX_JSON.INITIALIZE_OUTPUT (
    p_http_header     in boolean     default true,
    p_http_cache      in boolean     default false,
    p_http_cache_etag in varchar2    default null, 
    p_indent          in pls_integer default null );

パラメータ

表21-26 INITIALIZE_OUTPUTプロシージャのパラメータ

パラメータ 説明

p_http_header

TRUE (デフォルト)の場合、アプリケーション/JSONのMIMEタイプ・ヘッダーを書き込みます。

p_http_cache

このパラメータは、p_write_headerがTRUEの場合のみ関連があります。TRUEの場合、Cache-Control: max-age=315360000と書き込みます。FALSE (デフォルト)の場合、Cache-Control: no-cacheと書き込みます。それ以外の場合、Cache-Controlを書き込みません。

http_cache_etag

nullでない場合、etagヘッダーを書き込みます。このパラメータは、P_HTTP_CACHEがTRUEの場合のみ使用されます。

p_indent

インデント・レベル。デフォルトは、デバッグが有効な場合は2、それ以外の場合は0です。

この例では、デフォルトのヘッダーは直接書き込まれるため、生成しないようにAPEX_JSONを構成します。

BEGIN
  apex_json.initialize_output (
      p_http_header => false );
 
  sys.owa_util.mime_header('application/json', false);
  sys.owa_util.status_line(429, 'Too Many Requests');
  sys.owa_util.http_header_close;
  --
  apex_json.open_object;
  apex_json.write('maxRequestsPerSecond', 10);
  apex_json.close_object;
END;