Получение возвращаемых параметров из веб-службы REST в PL/SQL: подробное руководство

В этой статье блога мы рассмотрим различные методы получения возвращаемых параметров из веб-службы REST в PL/SQL. Мы предоставим примеры кода для демонстрации каждого метода, что позволит вам выбрать тот, который лучше всего соответствует вашим требованиям.

Метод 1: Пакет UTL_HTTP
Пакет UTL_HTTP в Oracle предоставляет функциональные возможности для взаимодействия с веб-службами. Вы можете использовать пакет для отправки HTTP-запросов и получения данных ответов из веб-службы REST. Вот пример:

DECLARE
  l_http_request  UTL_HTTP.REQ;
  l_http_response UTL_HTTP.RESP;
  l_url           VARCHAR2(4000) := 'https://api.example.com/service';
  l_response_text VARCHAR2(32767);
BEGIN
  l_http_request := UTL_HTTP.BEGIN_REQUEST(l_url);
  UTL_HTTP.SET_HEADER(l_http_request, 'Content-Type', 'application/json');

  -- Set request parameters if needed

  l_http_response := UTL_HTTP.GET_RESPONSE(l_http_request);
  UTL_HTTP.READ_TEXT(l_http_response, l_response_text);

  -- Process the response data

  UTL_HTTP.END_RESPONSE(l_http_response);
EXCEPTION
  WHEN UTL_HTTP.END_OF_BODY THEN
    UTL_HTTP.END_RESPONSE(l_http_response);
END;
/

Метод 2: Службы данных REST (ORDS)
Службы данных REST Oracle (ORDS) — это мощный инструмент, позволяющий создавать и использовать веб-службы RESTful в базе данных Oracle. Определив сервисный модуль RESTful, вы можете легко получить возвращаемые параметры. Вот пример:

BEGIN
  DECLARE
    l_response CLOB;
  BEGIN
    l_response := apex_web_service.make_rest_request(
      p_url           => 'https://api.example.com/service',
      p_http_method   => 'GET',
      p_wallet_path   => null,
      p_wallet_pwd    => null,
      p_proxy_override=> null
    );

    -- Process the response data

  END;
END;
/

Метод 3: Пакет PL/JSON
Пакет PL/JSON предоставляет возможности анализа и генерации JSON в PL/SQL. Вы можете использовать этот пакет для извлечения возвращаемых параметров из ответов JSON, полученных от веб-службы REST. Вот пример:

DECLARE
  l_response       CLOB;
  l_return_param   VARCHAR2(100);
BEGIN
  -- Make the REST API call and store the response in l_response

  l_return_param := pljson.get_value(
    l_response,
    'return_param'
  );

  -- Process the return parameter

  DBMS_OUTPUT.PUT_LINE('Return Param: ' || l_return_param);
END;
/

Получение возвращаемых параметров из веб-службы REST в PL/SQL может быть достигнуто различными методами. В этой статье мы рассмотрели три подхода: использование пакета UTL_HTTP, использование Oracle REST Data Services (ORDS) и использование пакета PL/JSON. У каждого метода есть свои преимущества, поэтому выберите тот, который соответствует вашим конкретным требованиям. Приятного кодирования!