Центр дизайна Mule определяет ответ 400, но попытка не возвращает такой же ответ

Я определяю свой контракт API в RAML в центре дизайна платформы Mule Anypoint. Вот простой договор:

    #%RAML 1.0
title: test_experiment
version: v1
mediaType: application/json

/test:
  put:
    headers:
      trackingId:
        type: string
        description: "Track each request"
        minLength: 3
    responses:
      200:
        body:
          application/json:
            example:
              {
                "msg": "successfully done"
              }

      400:
        body:
          application/json:
            example:
              {
                "msg": "something bad was submitted",
                "id" : "001"
              }

Затем я пытаюсь «проверить это» на вкладке «Документация», и когда я намеренно не ввожу trackingId, я получаю код ответа 400, но полезная нагрузка ответа отличается.

Я определил полезную нагрузку ответа как: (ожидаемая полезная нагрузка)

 {
     "msg": "something bad was submitted",
     "id" : "001"
 }

Однако ответ полезной нагрузки в «попробуй» в центре дизайна:

{
  "code": "REQUEST_VALIDATION_ERROR",
  "message": "Error validating header: expected minLength: 3, actual: 0"
}

Так почему же ответ 400 не возвращается, как я определил его в своем raml?

Edit1: все это поведение наблюдается в Центре дизайна, я не предоставляю реализацию, а затем тестирую ее, я использую документацию Центра дизайна и функцию «Попробуйте», как показано на изображении ниже:

Официальное название Центр дизайна.

aled 18.11.2022 19:31
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание API-ресурса Laravel может быть непростой задачей. Она требует глубокого понимания возможностей Laravel и лучших практик, чтобы обеспечить...
Как создать простое погодное приложение на Python с API OpenWeatherMap
Как создать простое погодное приложение на Python с API OpenWeatherMap
Этот учебник проведет вас через процесс создания простого погодного приложения с помощью Python и OpenWeatherMap API.
Пакеты Java
Пакеты Java
Пакет java - это группа классов, интерфейсов и подпакетов схожего типа. Думайте об этом как о папке в каталоге файлов. Мы используем пакеты, чтобы...
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
В этом руководстве вы узнаете, как использовать API парсинга квитанций за 5 минут с помощью JavaScript. Eden AI предоставляет простой и удобный для...
0
1
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Потому что это макет, а не реальная реализация. Когда вы тестируете в Design Center, вы используете Mocking Service , которая имитирует ответы. Ошибка, которую вы получаете, связана с тем, что запрос не соответствует спецификации. Mocking Service обычно использует только первый код состояния, который он находит в API RAML. Если вы хотите, чтобы он возвращал вашу ошибку, используйте поведенческий заголовок, например MS2-Status-Code, чтобы установить код ошибки. Например, установите для заголовка MS2-Status-Code значение 200,400. Хотя я не уверен, что это сработает, чтобы переопределить ошибку проверки от Mocking Service. Вам нужно будет попробовать.

отлично спасибо! , удалось переопределить ошибку проверки от сервиса Mocking, спасибо за подробности!

GettingStarted With123 20.11.2022 05:21

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