ORDS Oracle REST Data Services - использование заглавных букв JSON - PullRequest
0 голосов
/ 28 июня 2018

Я изучаю, как работает ORDS, и я хотел бы понять, возможно ли использовать в ответе верхний регистр ключа JSON.

Я искал некоторые параметры конфигурации в документации Oracle для этого, но мне не удалось ничего найти.

Спасибо

1 Ответ

0 голосов
/ 28 июня 2018

Наш стандарт Oracle {JSON} предписывает строчные атрибуты. Нельзя сказать ORDS генерировать вывод с использованием заглавных букв JSON.

НО.

Если вы сгенерируете JSON самостоятельно, вы можете задать свой ORDS GET HANDLER с типом источника 'Media Resource', а затем я смогу сделать что-то вроде этого.

-- Generated by Oracle SQL Developer REST Data Services 18.2.0.176.0254
-- Exported REST Definitions from ORDS Schema Version 17.4.1.353.06.48
-- Schema: HR   Date: Thu Jun 28 07:55:08 EDT 2018
--
BEGIN
  ORDS.ENABLE_SCHEMA(
      p_enabled             => TRUE,
      p_schema              => 'HR',
      p_url_mapping_type    => 'BASE_PATH',
      p_url_mapping_pattern => 'hr',
      p_auto_rest_auth      => FALSE);    

  ORDS.DEFINE_MODULE(
      p_module_name    => 'test2',
      p_base_path      => '/test2/',
      p_items_per_page =>  25,
      p_status         => 'PUBLISHED',
      p_comments       => NULL);      
  ORDS.DEFINE_TEMPLATE(
      p_module_name    => 'test2',
      p_pattern        => 'rawjson',
      p_priority       => 0,
      p_etag_type      => 'HASH',
      p_etag_query     => NULL,
      p_comments       => NULL);
  ORDS.DEFINE_HANDLER(
      p_module_name    => 'test2',
      p_pattern        => 'rawjson',
      p_method         => 'GET',
      p_source_type    => 'resource/lob',
      p_items_per_page =>  25,
      p_mimes_allowed  => '',
      p_comments       => NULL,
      p_source         => 
'SELECT ''application/json'', upper(json_doc)
from json_play'
      );
  ORDS.DEFINE_TEMPLATE(
      p_module_name    => 'test2',
      p_pattern        => 'rawtext',
      p_priority       => 0,
      p_etag_type      => 'HASH',
      p_etag_query     => NULL,
      p_comments       => NULL);
  ORDS.DEFINE_HANDLER(
      p_module_name    => 'test2',
      p_pattern        => 'rawtext',
      p_method         => 'GET',
      p_source_type    => 'plsql/block',
      p_items_per_page =>  25,
      p_mimes_allowed  => '',
      p_comments       => NULL,
      p_source         => 
'begin
   owa_util.status_line (200, '''', false);
   OWA_UTIL.MIME_HEADER (''text/plain'', TRUE);
    HTP.PRN ('{"WHATEVER": 0}');
end;'
      );

  COMMIT; 
END;

Итак, в первом сервисе я запрашиваю существующий документ JSON, хранящийся в CLOB, и просто пишу верхний регистр содержимого.

Во втором сервисе я пишу свой вывод.

Запрос существующего документа JSON и возврат текста, не отформатированный ORDS

enter image description here

Генерация моего собственного ответа

enter image description here

...