Как проверить два примитивных типа в одном ответе API с помощью каратэ

Я использую каратэ для проверки ответа конечной точки. И мой API отвечает структурой ключ-значение. Проблема в том, что значение может быть логическим или строковым.

Как я могу проверить это только с одним выражением ИЛИ с каратэ?

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

{
  "value": true,
  "key": "key1"
},
{
  "value": "This is my value",
  "key": "key2"
}

Я пробовал такие вещи, как

onfStructure: "#? _ == ^*(confStructure1 || confStructure2)"

confStructure1:
  value: "#boolean"
  key: "#string"

confStructure2:
  value: "#string"
  key: "#string"

или

confStructure: "#? _ == (^*confStructure1 || ^*confStructure2)"

или

confStructure: 
  value: "#(^*newSchema)"
  key: "#string"

newSchema:
  value: "#boolean"
  value: "#string"

Но ничего не работает.

Как сделать 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 предоставляет простой и удобный для...
2
0
20
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Это единственный способ, который я могу придумать, чтобы решить эту проблему. Иногда «шаблоны» каратэ не могут быть использованы. Честно говоря, большинство API никогда не имеют таких вариаций схемы.

* def response = [{value: 'foo'},{value: true}]
* match each response == { value: "#? typeof _ == 'string' || typeof _ == 'boolean'" }

Благодарю вас! этот тип был решением! :D

j.barrio 01.04.2022 08:27

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