В последние несколько дней я искал документацию по расширению переменных в объектах JSON. Я перепробовал много рекомендаций и исправлений, но ни одна из них не работает так, как ожидалось. Мне остается задуматься, есть ли лучший способ, чем я реализовал. Во всяком случае, на мой случай использования.
Вариант использования
У меня есть массив целых чисел, которые представляют объекты в веб-приложении. Эти объекты могут устанавливать отношения между ними, отправляя запрос POST к конечной точке API.
Этот массив целых чисел называется $combined
.
PS C:\> $combined
i_id m_id
------------ ----------
75419 6403
75420 6403
75421 6403
75410 6403
Чтобы настроить параметры, используемые для моего запроса POST, я создал еще один массив с именем $associationParams
.
$associationParams = @{
ContentType = "application/json"
Body = '{"id": '+$($thing).m_id+'}'
Method = "POST"
URI = "https://application/api/in/$($thing.i_id)/endpoint"
Headers = $headers
}
Переменная $headers
, указанная выше, является токеном авторизации.
Итак, мое первоначальное намерение - перебрать массив целых чисел ($combined
) и вызвать Invoke-RestMethod
следующим образом:
Foreach ($thing in $combined) {
Invoke-RestMethod @iocAssociationParams
}
Задача
Таким образом, у меня на самом деле нет проблемы как таковой ... Кажется, что в моем тестировании есть некоторая несогласованность, когда окончательный ForEach
, кажется, не проходит через все элементы в массиве $combined
... Но Мне интересно, есть ли лучший способ. Я попытался отформатировать строку JSON-объекта в параметре Body в $associationParams
, но это определенно не сработало. Я также пробовал разные формы цитирования, но они тоже не работали. Является ли попытка указать параметры для Invoke-RestMethod
лучшим способом? Должен ли я просто перечислить все параметры для Invoke-RestMethod
в цикле ForEach
?