現在、PowerShell で ReST リクエストを呼び出すためのユース ケースに取り組んでいます。POST リクエストのボディは動的に作成され、CSV ファイルからデータを読み取ります。
これが私の最終的なリクエストボディのあり方です
{
"@type": "mtTaskParameter",
"name": "$src_sfdc$",
"type": "EXTENDED_SOURCE",
"sourceConnectionId":"00002E0B00000000000C"
},
{
"@type": "mtTaskParameter",
"name": "$tgt_db_del$",
"type": "TARGET",
"targetConnectionId":"00002E0B00000000000D"
},
{
"@type": "mtTaskParameter",
"name": "$tgt_db_ups$",
"type": "TARGET",
"targetConnectionId":"00002E0B00000000000D"
},
{
"@type": "mtTaskParameter",
"name": "$tgt_status$",
"type": "TARGET",
"targetConnectionId":"00002E0B00000000000D"
}
}
現在、私は以下のように実装しています
if($connectionParameterized -eq "true"){
$str = @"
"@type": "mtTaskParameter",
"name": "$name",
"type": "$type"
"@
if($type -eq "SOURCE"){
$sourceConnectionId = <get source id>
$str = $str+
@"
,"sourceConnectionId":"$sourceConnectionId"
"@
}
if($type -eq "TARGET"){
$targetConnectionId = <get target id>
$str = $str+
@"
,"targetConnectionId":"$targetConnectionId"
"@
}
$finalstr = $finalstr+@"
{
$str
},
"@
}
これは問題なく機能しますが、コードが非常に煩雑になり、スケーリングが非常に困難になります。また、印刷中にフォーマットが適切ではありません。
これを処理するより良い方法はありますか?
注: 例から明らかなように、リクエスト本文には @、$ などの特殊文字がいくつか含まれています。