В этой статье блога мы рассмотрим различные методы получения возвращаемых параметров из веб-службы 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. У каждого метода есть свои преимущества, поэтому выберите тот, который соответствует вашим конкретным требованиям. Приятного кодирования!