Yandex Message Queue API

Yandex Message Queue предоставляет HTTP API, частично совместимый с Amazon SQS API.

Выполнение запроса к API

Для выполнения запроса к API Yandex Message Queue необходимо выполнить POST запрос по пути / на адрес https://message-queue.api.cloud.yandex.net.

POST / HTTP/1.1
Host: message-queue.api.cloud.yandex.net
Content-Length: length
Content-Type: application/x-www-form-urlencoded
Authorization: authorization string (AWS Signature Version 4)

Request parameters

Заголовки запроса

Все запросы должны содержать стандартные заголовки:

  • Content-Typeapplication/x-www-form-urlencoded.
  • Authorization — Подпись запроса согласно разделу Authenticating Requests документации Amazon SQS. При использовании SDK или консольного клиента запрос и подпись запроса формируются автоматически, вам необходимо только передавать параметры запроса.

Параметры запроса

Все запросы должны содержать стандартные параметры:

  • Action — название вызываемого метода API.
  • Version — всегда равен 2012-11-05.

Параметры передаются в теле запроса, в формате form-urlencoded.

Передача массивов параметров

Некоторые параметры сообщения, например, атрибуты сообщения или очереди, передаются в виде массивов. Каждый элемент массива передается в виде двух или более параметров запроса. Например, для атрибутов это имя и значение элемента массива.

Пример использования атрибута из нескольких параметров:

Attribute.1.Name=VisibilityTimeout
Attribute.1.Value=40
Attribute.2.Name=MessageRetentionPeriod
Attribute.2.Value=1000

В этом примере атрибутом 1 служит VisibilityTimeout, которому присваивается значение 40 и атрибутом 2 — MessageRetentionPeriod, которому присваивается значение 1000.

Ответ на запрос к API

В ответ на запрос Message Queue возвращает XML-структуру, содержащую результат запроса.

Успешный ответ

Если запрос выполнился успешно, основной элемент ответа получает название по имени вызываемого метода с добавлением суффикса Response (<Action> + "Response").

Этот элемент содержит следующие дочерние элементы:

Тег Описание
ActionNameResult Содержит элементы, зависящие от вызываемого метода. Возможные элементы описаны в документации каждого метода. Например, CreateQueueResult содержит элемент QueueUrl, который содержит URL созданной очереди.
ResponseMetadata Содержит RequestId, который, в свою очередь, содержит UUID запроса.

Пример успешного ответа:

<?xml version="1.0" encoding="UTF-8"?>
<CreateQueueResponse>
   <CreateQueueResult>
      <QueueUrl>https://message-queue.api.cloud.yandex.net/b1g8ad42m6he1ooql78r/dj600000000000me07ol/sample-queue</QueueUrl>
   </CreateQueueResult>
   <ResponseMetadata>
      <RequestId>3c9b76fb-f35fb266-48e9c5bf-faca-ddc10b592cfce6ffdf83329a2062f99b</RequestId>
   </ResponseMetadata>
</CreateQueueResponse>

Ошибочный ответ

Если запрос выполнился с ошибкой, основной элемент носит название ErrorResponse. Этот элемент содержит дочерние элементы Error и RequestId.

Элемент Error содержит следующие дочерние элементы:

Тег Описание
Type Тип ошибки, указывающий, на чьей стороне произошла ошибка: отправителя или получателя.
Code Идентификатор ошибки.

Перечень стандартных ошибок смотрите в разделе Стандартные ошибки.
Message Описание ошибки на английском языке.
Detail Дополнительные сведения об ошибке (опционально).

Элемент RequestId содержит UUID запроса.

Пример ответа c ошибкой:

<ErrorResponse>
   <Error>
      <Type>Sender</Type>
      <Code>InvalidParameterValue</Code>
      <Message>
         Value (queuename_nonalpha) for parameter QueueName is invalid.
         Must be an alphanumeric String of 1 to 80 in length.
      </Message>
   </Error>
   <RequestId>42d59b56-7407-4c4a-be0f-4c88daeea257</RequestId>
</ErrorResponse>