0

現在、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
     },
"@
}

これは問題なく機能しますが、コードが非常に煩雑になり、スケーリングが非常に困難になります。また、印刷中にフォーマットが適切ではありません。

これを処理するより良い方法はありますか?

注: 例から明らかなように、リクエスト本文には @、$ などの特殊文字がいくつか含まれています。

4

1 に答える 1