Проблема с переменной в REST API powershell - PullRequest
0 голосов
/ 15 апреля 2020

Фон : запрос REST API работает правильно, когда я удаляю переменную $ Description и помещаю строку в строку 11. Если я оставляю переменную, она не получает ее значение, она просто использует имя $ Description. Переменная работает нормально, так как я проверял ее, отображая значения на каждой итерации в l oop.

Местоположение проблемы : строка 11

Журналы ошибок : Нет ошибок от powershell

$import= Import-Csv -Path C:\Users\ERESULTS.csv -Encoding UTF8  -Delimiter "," -Header "ID", "Description" 
$limit = $import.id.count
$token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyZXBKPqye_X-lBgO3g_XMdlXBdgxsWlXMN2y6sVmF5nlc"
foreach ($line in $import) { 
$ID= $line.ID
$Description= $line.Description 
$params = @{
    Uri         = "https://test.com/rest-api/dataModel/ci/$ID"
    Headers     = @{ 'Authorization' = "Bearer $token" }
    Method      = 'PUT'
    Body        = '{ "dbId" : "$ID", "type" : "business_application", "properties" : {"description" : "$Description" }}'
    ContentType = 'application/json'


}
Invoke-RestMethod  @params
Start-Sleep -Second 2
}

1 Ответ

0 голосов
/ 15 апреля 2020

Используйте здесь строку в двойных кавычках для расширения переменных, но без экранирования " внутри строки:

$params = @{
    # ...
    Body        = @"
{ "dbId" : "$ID", "type" : "business_application", "properties" : {"description" : "$Description" }}
"@
    # ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...