PDA

Показать полную графическую версию : [решено] из ответа запроса сделал следующий запрос по API


Njem
15-11-2022, 18:41
Всем привет!

Есть обычный GET запрос по API:

$GET_JSON_RESPONSE = Invoke-RestMethod -Method Get -Uri "$ENDPOINT/api/1.1/json/$NAMEPOINT1/" -Headers $HEADERS -ContentType "application/json"
$NAME_GROUP = $GET_JSON_RESPONSE | Format-List name, id

Возвращает он названия и id этих названий

Ситуация следующая, нужно сделать следующий запрос вот такого типа:

Invoke-RestMethod -Method Get -Uri "$HF_ENDPOINT/api/1.1/json/$NAMEPOINT2/23/" -Headers $HEADERS -ContentType "application/json"

Нужно чтобы из первого запроса, а точнее из результата, который он дал по первому запросу взял id и подставил его во второй запрос (в конце где пример номера 23)
Причём, чтобы проходился по результату каждого id и делал по всем запросы и вывел информацию: название и результат от второго запроса

Помогите, пожалуйста, сделать это... примерно, понимаю что через цикл.. игрался, игрался, но не смог понять как это сделать правильно(
как мне взять из ответа только id и вставить его в запросы :(

Foreigner
15-11-2022, 19:36
Наверное, если возвращается один name и один id, так, иначе надо перебирать в цикле или брать по индексу:


$GET_JSON_RESPONSE = Invoke-RestMethod -Method Get -Uri "$ENDPOINT/api/1.1/json/$NAMEPOINT1/" -Headers $HEADERS -ContentType "application/json"
$NAME_GROUP = $GET_JSON_RESPONSE | Select-Object name, id

Invoke-RestMethod -Method Get -Uri "$HF_ENDPOINT/api/1.1/json/$NAMEPOINT2/$($NAME_GROUP.id)/" -Headers $HEADERS -ContentType "application/json"

Njem
15-11-2022, 20:06
Наверное, если возвращается один name и один id, так, иначе надо перебирать в цикле или брать по индексу: »
Не, если бы возвращался один, то было бы всё проще, а так их приходит много (если быть точнее, то 72 строки с именем и айди его)
и вот нужно как-то по каждому пройтись и получить запрос по этому айди...

Foreigner
15-11-2022, 20:54
Если правильно понял, $GET_JSON_RESPONSE возвращает несколько объектов, то наверное как-то так:


$GET_JSON_RESPONSE = Invoke-RestMethod -Method Get -Uri "$ENDPOINT/api/1.1/json/$NAMEPOINT1/" -Headers $HEADERS -ContentType "application/json"

$GET_JSON_RESPONSE | Foreach-Object {
$name, $id = $_.name, $_.id
Invoke-RestMethod -Method Get -Uri "$HF_ENDPOINT/api/1.1/json/$NAMEPOINT2/$id/" -Headers $HEADERS -ContentType "application/json"
}

Njem
16-11-2022, 01:31
Если правильно понял, $GET_JSON_RESPONSE возвращает несколько объектов, то наверное как-то так: »

О ГОСПОДИ, это как раз то что нужно!!!
блин, спасибо большое!
неделю сидел ковырялся и думал, как же сделал цикл из этого вывода, блин.. а оказалось такая фигня.. увидел, понял, записал себе в голову!

пойду дальше всё это собирать в единую кучу и по аналогии делать остальное.. )




© OSzone.net 2001-2012