Тип тела ответа HTTP в RAML для API

Я создаю API с центром Mule Anypoint Design, где я получаю данные с типом text/plain от других конечных точек. Могу ли я просто использовать текст / обычный код ниже raml вместо application/json?

Почему я спрашиваю это?

Моей конечной точкой является AWS SNS, и он отправляет HTTP-заголовок Content-Type только со значением "text/plain", а маршрутизатор apikit в студии проверяет, является ли тип содержимого "любым, что указано в спецификации RAML (application/json)"., Конечно, я могу отключить проверки, но у меня есть другие вещи для проверки, которые зависят от этого.

responses: 
  201:
    body: 
      application/json:
        example:  {"msg" : "Flight inserted successfully"}

2 ответа

С марта 2023 года Amazon SNS теперь поддерживает пользовательскиеContent-Typeзаголовки HTTP-сообщений, доставленных из тем. Вот объявление: https://aws.amazon.com/about-aws/whats-new/2023/03/amazon-sns-content-type-request-headers-http-s-notifications/

Вам просто нужно изменить атрибут вашей подписки Amazon SNS, установивheaderContentTypeсобственностьapplication/json,application/xmlили любое другое поддерживаемое значение. Все поддерживаемые значения можно найти здесь: https://docs.aws.amazon.com/sns/latest/dg/sns-message-delivery-retries.html#creating-delivery-policy .

      {
    "healthyRetryPolicy": {
        "minDelayTarget": 1,
        "maxDelayTarget": 60,
        "numRetries": 50,
        "numNoDelayRetries": 3,
        "numMinDelayRetries": 2,
        "numMaxDelayRetries": 35,
        "backoffFunction": "exponential"
    },
    "throttlePolicy": {
        "maxReceivesPerSecond": 10
    },
    "requestPolicy": {
        "headerContentType": "application/json"
    }
}

Вы устанавливаетеDeliveryPolicyатрибут, вызвав либо методSubscribeилиSetSubscriptionAttributesДействие API:

Да, вы можете изменить его на text/plain в RAML, если это необходимо. Но если вы хотите, чтобы ваш ответ был json, вам лучше изменить свою полезную нагрузку и перезаписать заголовок Content-type в центре разработки Mule/Anypoint.

Другие вопросы по тегам