機械翻訳について

フォームURLエンコード・コンテンツの送信または受信

この手順では、フォームURLでエンコードされたコンテンツを送信または受信するフローを実装する方法を示します。

connectivity::rest関数は、ペイロードに基づいてコンテンツの処理方法を暗黙的に決定します。 このパラメータは、コンテンツ・タイプがapplication/x-www-form-urlencodedの場合にペイロードをフォーム・データとして処理し、JSONキー/値ペアをフォーム・データに自動的に変換します。

  1. Visual Studio Codeでアダプタ定義ドキュメントを開きます。
  2. アクションの入力および出力スキーマをキー値で定義します。
    サンプル・コード:
    "formData": {
          "type": "object",
          "properties": {
            "key1": {
              "type": "string"
            },
            "key2": {
              "type": "string"
            }
          }
        },
  3. 処理のスキーマを入力および出力スキーマとして参照します。

    サンプル・コード:

    "sendRecieveFormData": {
          "description": "",
          "displayName": "upload file",
          "execute": "flow:formDataFlow",
          "input": {
            "schemaType": "application/schema+json",
            "schema": {
              "$ref": "#/schemas/formData"
            }
          },
          "output": {
              "schemaType": "application/schema+json",
            "schema": {
              "$ref": "#/schemas/formData"
            }
          }
        },
  4. connectivity::restパラメータを使用してフローを作成し、本文を入力として渡します。

    サンプル・コード:

    {
                  "functionRef": {
                    "refName": "httpOutbound",
                    "arguments": {
                      "uri": "${.connectionProperties.baseURL + \"/orders\"}",
                      "method": "POST",
                      "headers":{
                        "content-type":"application/x-www-form-urlencoded"
                      }
                      "body": "${ .input}"
                    }
                  },
                  "actionDataFilter": {
                    "results": "${ .body } }",
                    "toStateData": "${ .output }"
                  }
                }

    ノート:

    • リクエスト・フェーズでは、connectivity::rest関数はJSON入力を自動的に変換します。 たとえば、 {"key1":"value1","key2":"value2"} からkey1=value1&key2=value2です。
    • レスポンス・メディア・タイプがapplication/www-form-urlencodedの場合、レスポンス・フェーズでは、connectivity::restファンクションによってレスポンス・ペイロードが自動的に変換されます。 For example, key1=value11&key2=value21 to JSON {"key1":"value11","key2":"value21"}.
完全なサンプル・コード:
"flows": {  
   "UploadFileFlow" : {
      "id": "UploadFileFlow",
      "description": "UploadFileFlow",
      "version": "0.1",
      "start": "startState",
      "specVersion": "0.8",
      "functions": [
        {
          "name": "httpOutbound",
          "operation": "connectivity::rest",
          "type": "custom"
        }
      ],
      "states": [
        {
          "actions": [
            {
              "functionRef": {
                "refName": "httpOutbound",
                 "arguments": {
                  "uri": "${.connectionProperties.baseURL + \"/orders\"}",
                  "method": "POST",
                  "headers":{
                    "content-type":"application/x-www-form-urlencoded"
                  }
                  "body": "${ .input}"
                }
              },
              "actionDataFilter": {
                "results": "${ .body } }",
                "toStateData": "${ .output }"
              }
            }
          ],
          "name": "startState",
          "type": "operation",
          "end": true
        }
      ]
    }
}