Документация Engee

Пакет поддержки HTTP

Страница в процессе разработки.

Подсистема Engee.Интеграции предоставляет пользователю возможность выступать в качестве HTTP-клиента для общения с внешними сервисами через REST API.

function close_session(device::HttpType)::Nothing

Деинициализация ранее созданного HTTP клиента.

Аргументы

device::HttpType: объект типа HTTP.Http().

function delete(device::HttpType, endpoint::String, request_data::HTTPRequestData, headers::Dict{String, String}=Dict(), timeout::Union{Int64, Nothing}=nothing)::HTTPResponse

DELETE-запрос REST API. Возвращает HTTPResponse — объект с ответом сервера, содержащий:

  • text_content: HTTP-ответ в текстовом представлении;

  • bytes_content: HTTP-ответ в байтовом представлении;

  • elapsed: время выполнения запроса;

  • status_code: статус код HTTP-запроса.

Пример ответа сервера

Base.@kwdef struct HTTPResponse
text_content::Union{String, Nothing} = nothing
bytes_content::Union{Vector{UInt8}, Nothing} = nothing
elapsed::Union{HTTPTimedelta, Nothing} = nothing
status_code::Union{Int64, Nothing} = nothing
end

Аргументы

  • device::HttpType: объект типа HTTP.Http().

  • endpoint::String: конечная точка для обращения к HTTP-ресурсу.

  • request_data::HTTPRequestData: данные запроса (объект типа HTTPRequestData).

  • headers::Dict{String, String}: дополнительные заголовки. Например, настройка заголовков соединения и MIME-type запросов:

    headers = Dict{String, String}()
    headers["connection"] = "keep-alive"
    headers["Accept"] = "application/json"
  • timeout::Union{Int64, Nothing}: таймаут на ожидание ответа в секундах.

function get(device::HttpType, endpoint::String, request_data::HTTPRequestData, headers::Dict{String, String}=Dict(), timeout::Union{Int64, Nothing}=nothing)::HTTPResponse

GET-запрос REST API. Возвращает HTTPResponse — объект с ответом сервера, содержащий:

  • text_content: HTTP-ответ в текстовом представлении;

  • bytes_content: HTTP-ответ в байтовом представлении;

  • elapsed: время выполнения запроса;

  • status_code: статус код HTTP-запроса.

Пример ответа сервера

Base.@kwdef struct HTTPResponse
text_content::Union{String, Nothing} = nothing
bytes_content::Union{Vector{UInt8}, Nothing} = nothing
elapsed::Union{HTTPTimedelta, Nothing} = nothing
status_code::Union{Int64, Nothing} = nothing
end

Аргументы

  • device::HttpType: объект типа HTTP.Http().

  • endpoint::String: конечная точка для обращения к HTTP-ресурсу.

  • request_data::HTTPRequestData: объект типа HTTPRequestData.

  • headers::Dict{String, String}: дополнительные заголовки. Например, настройка заголовков соединения и MIME-type запросов:

    headers = Dict{String, String}()
    headers["connection"] = "keep-alive"
    headers["Accept"] = "application/json"
  • timeout::Union{Int64, Nothing}: таймаут на ожидание ответа в секундах.

function init_session(device::HttpType, base_url::String="", auth::Union{Tuple{String}, String, Nothing}=nothing, auth_type::String="bearer", headers::Dict{String, String}=Dict(), timeout::Int64=30, verify_ssl::Bool=true)::Bool

Инициализация HTTP клиента для общения с HTTP-сервером.

Аргументы

  • device::HttpType: объект типа HTTP.Http().

  • base_url::String: базовый URL для всех запросов.

  • auth::Union{Tuple{String}: данные для авторизации, либо кортеж (username, password), либо строка с токеном.

  • auth_type::String: тип аутентификации (basic, digest, или bearer).

  • headers::Dict{String, String}: заголовки по умолчанию для включения в каждый запрос.

  • timeout::Int64: таймаут ожидания ответа по умолчанию в секундах.

  • verify_ssl::Bool: верификация SSL сертификатов (true — включена, false — отключена).

function patch(device::HttpType, endpoint::String, request_data::HTTPRequestData, headers::Dict{String, String}=Dict(), timeout::Union{Int64, Nothing}=nothing)::HTTPResponse

PATCH-запрос REST API. Возвращает HTTPResponse — объект с ответом сервера, содержащий:

  • text_content: HTTP-ответ в текстовом представлении;

  • bytes_content: HTTP-ответ в байтовом представлении;

  • elapsed: время выполнения запроса;

  • status_code: статус код HTTP-запроса.

Пример ответа сервера

Base.@kwdef struct HTTPResponse
text_content::Union{String, Nothing} = nothing
bytes_content::Union{Vector{UInt8}, Nothing} = nothing
elapsed::Union{HTTPTimedelta, Nothing} = nothing
status_code::Union{Int64, Nothing} = nothing
end

Аргументы

  • device::HttpType: объект типа HTTP.Http().

  • endpoint::String: конечная точка для обращения к HTTP-ресурсу.

  • request_data::HTTPRequestData: объект типа HTTPRequestData.

  • headers::Dict{String, String}: дополнительные заголовки. Например, настройка заголовков соединения и MIME-type запросов:

    headers = Dict{String, String}()
    headers["connection"] = "keep-alive"
    headers["Accept"] = "application/json"
  • timeout::Union{Int64, Nothing}: таймаут на ожидание ответа в секундах.

function post(device::HttpType, endpoint::String, request_data::HTTPRequestData, headers::Dict{String, String}=Dict(), timeout::Union{Int64, Nothing}=nothing)::HTTPResponse

POST-запрос REST API. Возвращает HTTPResponse — объект с ответом сервера, содержащий:

  • text_content: HTTP-ответ в текстовом представлении;

  • bytes_content: HTTP-ответ в байтовом представлении;

  • elapsed: время выполнения запроса;

  • status_code: статус код HTTP-запроса.

Пример ответа сервера

Base.@kwdef struct HTTPResponse
text_content::Union{String, Nothing} = nothing
bytes_content::Union{Vector{UInt8}, Nothing} = nothing
elapsed::Union{HTTPTimedelta, Nothing} = nothing
status_code::Union{Int64, Nothing} = nothing
end

Аргументы

  • device::HttpType: объект типа HTTP.Http().

  • endpoint::String: конечная точка для обращения к HTTP-ресурсу.

  • request_data::HTTPRequestData: объект типа HTTPRequestData.

  • headers::Dict{String, String}: дополнительные заголовки. Например, настройка заголовков соединения и MIME-type запросов:

    headers = Dict{String, String}()
    headers["connection"] = "keep-alive"
    headers["Accept"] = "application/json"
  • timeout::Union{Int64, Nothing}: таймаут на ожидание ответа в секундах.

function put(device::HttpType, endpoint::String, request_data::HTTPRequestData, headers::Dict{String, String}=Dict(), timeout::Union{Int64, Nothing}=nothing)::HTTPResponse

PUT-запрос REST API. Возвращает HTTPResponse — объект с ответом сервера, содержащий:

  • text_content: HTTP-ответ в текстовом представлении;

  • bytes_content: HTTP-ответ в байтовом представлении;

  • elapsed: время выполнения запроса;

  • status_code: статус код HTTP-запроса.

Пример ответа сервера

Base.@kwdef struct HTTPResponse
text_content::Union{String, Nothing} = nothing
bytes_content::Union{Vector{UInt8}, Nothing} = nothing
elapsed::Union{HTTPTimedelta, Nothing} = nothing
status_code::Union{Int64, Nothing} = nothing
end

Аргументы

  • device::HttpType: объект типа HTTP.Http().

  • endpoint::String: конечная точка для обращения к HTTP-ресурсу.

  • request_data::HTTPRequestData: объект типа HTTPRequestData.

  • headers::Dict{String, String}: дополнительные заголовки. Например, настройка заголовков соединения и MIME-type запросов:

    headers = Dict{String, String}()
    headers["connection"] = "keep-alive"
    headers["Accept"] = "application/json"
  • timeout::Union{Int64, Nothing}: таймаут на ожидание ответа в секундах.

function remove_header(device::HttpType, key::String)::Nothing

Функция для удаления указанного заголовков запроса из существующих заголовков.

Аргументы

  • device::HttpType: объект типа HTTP.Http().

  • key::String: ключ устанавливаемого заголовка запроса.

Удаляет заголовок из всех последующих запросов.

function set_header(device::HttpType, key::String, value::String)::Nothing

Функция для установки заголовков запроса к уже существующим заголовкам.

Аргументы

  • device::HttpType: объект типа HTTP.Http().

  • key::String: ключ устанавливаемого заголовка запроса.

Выставляет заголовок для всех последующих запросов.