-1

大規模なネストされた json の結果に対して「データの抽出」ポリシーを使用する際に問題が発生しています。これを apigee の「データ抽出」ポリシーにどのように記述すればよいですか? 特に、npi、姓、名、会社の住所のフィールドに興味があります。ありがとう。

{
"meta": {
    "rowCount": 1
},
"result": [
    {
        "npi": 1671836487,
        "type": "individual",
        "last_name": "HUTTER",
        "first_name": "JOHN",
        "name_prefix": "MR.",
        "credential": "MD",
        "business_address": {
            "address_line": "1MAINSTREET",
            "city": "HARTFORD",
            "state": "CT",
            "zip": "06106",
            "country_code": "US",
            "phone": "8605551212",
            "fax": "8605551212"
        },
        "practice_address": {
            "address_line": "1MAINST",
            "city": "HARTFORD",
            "state": "CT",
            "zip": "06106",
            "country_code": "US",
            "phone": "8605551212",
            "fax": "8605551212"
        },
        "enumeration_date": "2013-04-03T00: 00: 00.000Z",
        "last_update_date": "2013-04-03T00: 00: 00.000Z",
        "gender": "male",
        "provider_details": [
            {
                "healthcare_taxonomy_code": "101Y00000X",
                "license_number": "002295",
                "taxonomy_switch": "yes"
            }
        ],
        "sole_proprietor": "no"
    }
]

}

4

2 に答える 2

1

ExtractVariable ポリシーの JSONPath オプションが機能するように、content-type ヘッダーが application/json に設定されていることを確認してください。

上記を抽出するサンプル ポリシーを次に示します (自分のシステムで検証済み)。

<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
  <DisplayName>Extract Variables 1</DisplayName>
  <FaultRules/>
  <Properties/>

  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
  <JSONPayload>
    <Variable name="result">
        <JSONPath>$.result</JSONPath>
    </Variable>      
    <Variable name="npi">
        <JSONPath>$.result[0].npi</JSONPath>
    </Variable>
    <Variable name="last_name">
        <JSONPath>$.result[0].last_name</JSONPath>
    </Variable>
    <Variable name="first_name">
        <JSONPath>$.result[0].first_name</JSONPath>
    </Variable>
  </JSONPayload>
  <Source clearPayload="false">request</Source>
  <VariablePrefix>json</VariablePrefix>
</ExtractVariables>

また、トラブルシューティングに役立つサンプルの AssignMessage ポリシー。これをターゲットのないプロキシに追加すると、抽出された値を含む単純な応答が返されます。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1">
  <DisplayName>Assign Message 1</DisplayName>
  <FaultRules/>
  <Properties/>

  <Set>
    <Payload>
      npi={json.npi},
      last_name={json.last_name},
      first_name={json.first_name}
    </Payload>
  </Set>

  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
  <AssignTo createNew="false" transport="http" type="response"/>
</AssignMessage>

上記の応答例:

      npi=1671836487,
      last_name=HUTTER,
      first_name=JOHN

参照:

http://apigee.com/docs/api-services/content/extract-message-content-using-extractvariables http://apigee.com/docs/api-services/content/generate-or-modify-messages-using -割り当てメッセージ

于 2014-06-16T15:33:08.797 に答える
-1

あなたはこれを行うことができるはずです(私はそれをテストしませんでした):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="get-ressults">
    <DisplayName>Get Results</DisplayName>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <JSONPayload>
        <Variable name="npi">
            $.result[*].npi
        </Variable>
        <Variable name="first_name">
            $.result[*].first_name
        </Variable>
        <!-- etc. -->
    </JSONPayload>
    <Source>response</Source>
    <VariablePrefix>results</VariablePrefix>
</ExtractVariables>
于 2014-06-16T15:34:18.460 に答える