Как установить переменные заголовка в Javascript, если в именах API есть тире? - PullRequest
2 голосов
/ 11 октября 2019

Новое в каратэ. Расти в JavaScriptЯ прочитал страницу intuit.karate. Я посылаю SOS здесь, пожалуйста, будьте добры. Как мне настроить заголовки через .js, если заголовки имеют имена типа Content-Type? Я не имею в виду значение, но фактическое имя. У меня есть заголовок API с сочетанием имен, которые содержат тире, а некоторые нет. Кроме того, вы можете обновить заголовок после настройки, но до фактического вызова. Попытка чего-то подобного, которая с треском провалилась:

'' 'Справочная информация:

* callonce read('getAuthorization.feature')
* configure headers = read('classpath:payload.json')
* print 'headers: ', headers
* configure headers = {"Authorization" : authToken}

' ''

Откуда у payload.json статические значения и откуда происходит авторизация authTokengetAuthorization.feature. Я хочу, чтобы авторизация была добавлена ​​к информации заголовка из payload.json.

Заранее прошу прощения за любую путаницу в этом вопросе. Я пробовал страницу интуитивного каратэ и примеры, а также видео с YouTube, прежде чем приехать сюда.

1 Ответ

1 голос
/ 12 октября 2019

Несколько изменений, которые вы можете рассмотреть

  • Если в заголовке есть тире, например Content-Type
var header = {}
header["Content-Type"] = "<CONTENT_TYPE>"
  • Встроенное выражение для ввода значения непосредственно в payload.json при чтении

payload.json

{
  "Authorization" : "#(authToken)"
  "Content-Type"  : "application/json"
}

В файле объектов:

* callonce read('getAuthorization.feature')
* configure headers = read('classpath:payload.json')

выше 2 шагов должно быть достаточно.

  • заголовок с использованием js

header.js

function fn() {
    var authCall = karate.callSingle('getAuthorization.feature')
    var headers = {}
    // add all static headers as well
    headers["Content-Type"] = "application/json"
    headers["Authorization"] = authCall.authToken
    return headers
}

В функции:

* configure headers = read('classpath:header.js')()

или

* configure headers = call read('classpath:header.js')
...