ORDS RESTful oracle -apex - формулировка JSON ответа (метод POST) - PullRequest
0 голосов
/ 16 апреля 2020

Я новичок в oracle -apex и с ORDS. Моя проблема: когда я пытался создать веб-службу RESTful на oracle apex из процедуры и использовал:

    l_response := apex_web_service.make_rest_request(
        p_url =>l_rest_url,
        p_http_method => 'POST',
        p_body => l_request_body
    );

из запроса на отправку.

В обработчике ORDS Определение, которое я определил:

declare
 l_response_body clob;
begin
l_response_body := '{"conf_code":"'||sys_guid()|| '","status":"APPROVED"}';

INSERT INTO JSON_TIMECARD_APPROVAL (id, json_data)
VALUES (sys_guid(),l_response_body);

:xxResponse :=l_response_body;

Когда xxResponse был определен для параметра OUT и типа источника: RESPONSE.

Мне интересно получить ответ в формате JSON.

Когда я пытался вызвать мой веб-сервис (мой веб-интерфейс https://apex.oracle.com/pls/apex/eliranhaa/timecards/approval/) на . Параметр IN:

p_body = 
{"timecard": [
  {
    "timecard_id":214804582301489177025033231688226094978
    ,"employee_id":214804582301403343291840593016821956482
    ,"week_of":"2020-18-03T00:00:00Z"
  }
  ]
}

The Outcome: 
{"DATA":"{\"conf_code\":\"A3695DE33828CA50E0530C4072644591\",\"status\":\"APPROVED\"}"}

Я не знаю, почему результат возвращается в виде строки вместо формата Json (Respone return as CLY TYPE).

У меня есть ссылка из веб-API https://apex.oracle.com/pls/apex/timecards/timecard/approval/ Кстати, это то, что я хочу для своего веб-сервиса.

Tnx Eliran

1 Ответ

0 голосов
/ 21 апреля 2020

Первое, что выделяется, это то, что вы звоните sys_guid дважды. Разве вы не хотите вернуть то же значение, которое вы вставили?

Я не знаю, почему результат возвращается в виде строки вместо Json формата

Что вы видите, что ваши JSON данные неправильно экранированы, потому что вы пытаетесь указать одно значение JSON в качестве выходных данных. Попробуйте вместо этого разбить его на части.

Например, я создал обработчик, который выглядит следующим образом:

enter image description here

И вот ответ, я думаю, это то, что вы ищете (см. строку 12): enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...