REST インターフェイス
Spectrum™ Technology Platform は、Web サービスに対する REST インターフェイスを提供します。Enterprise Designer で作成されたユーザ定義の Web サービスは、GET メソッドと POST メソッドをサポートします。モジュールの一部としてインストールされているデフォルトのサービスは、GET しかサポートしません。POST を使用してこれらのサービスのいずれかにアクセスしたい場合は、Enterprise Designer でユーザ定義サービスを作成する必要があります。
ご利用の Spectrum™ Technology Platform サーバーで使用できる REST Web サービスを確認するには、以下の URL にアクセスします。
http://server:port/rest
サービスのエンドポイント
XML 応答のエンドポイント:
http://server:port/rest/service_name/results.xml
JSON 応答のエンドポイント:
http://server:port/rest/service_name/results.json
ユーザ定義 Web サービスのエンドポイントは、別の URL を使用するように Enterprise Designer で変更できます。
WADL の URL
Spectrum™ Technology Platform Web サービスの WADL:
http://server:port/rest/service_name?_wadl
例:
http://myserver:8080/rest/ValidateAddress?_wadl
ユーザ フィールド
Web サービスでは使用されない余分なフィールドを、サービスを介して渡すことができます。こうしたフィールドは、変更されずに応答の user_fields
セクションで返されます。GET 要求の場合、ユーザ フィールドは他のフィールドと同じように、URL におけるパラメータとして引き渡されます。POST 要求の場合、ユーザ フィールドは、XML または JSON リクエストにおける user_fields 要素の一部として引き渡されます。
GET を用いて XML レスポンスを求める、REST リクエストの例
以下に、GET メソッドを使用して XML レスポンスを要求する、ValidateAddress サービスに対する REST リクエストの記述例を示します。
http://myserver:8080/rest/ValidateAddress/results.xml?Option.OutputCasing=U&Data.AddressLine1=1825+Kramer+Lane&Data.PostalCode=78759
この要求の例では、XML 応答が要求されたので、以下の応答が返されます。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xml.ValidateAddressResponse xmlns="http://www.pb.com/spectrum/services/ValidateAddress">
<output_port>
<Address>
<Confidence>82</Confidence>
<RecordType>Normal</RecordType>
<CountryLevel>A</CountryLevel>
<ProcessedBy>USA</ProcessedBy>
<MatchScore>0</MatchScore>
<AddressLine1>1825 KRAMER LN</AddressLine1>
<City>AUSTIN</City>
<StateProvince>TX</StateProvince>
<PostalCode>78758-4260</PostalCode>
<PostalCode.Base>78758</PostalCode.Base>
<PostalCode.AddOn>4260</PostalCode.AddOn>
<Country>UNITED STATES OF AMERICA</Country>
<user_fields/>
</Address>
</output_port>
</xml.ValidateAddressResponse>
GET を用いて JSON レスポンスを求める、REST リクエストの例
以下に、GET メソッドを使用して JSON レスポンスを要求する、ValidateAddress サービスに対する REST リクエストの記述例を示します。
http://myserver:8080/rest/ValidateAddress/results.json?Option.OutputCasing=U&Data.AddressLine1=1825+Kramer+Lane&Data.PostalCode=78759
この要求の例では、JSON 応答が要求されたので、以下の応答が返されます。
{
"ns1.json.ValidateAddressResponse" :
{
"ns1.output_port" :
{
"ns1.Confidence" : 82,
"ns1.RecordType" : "Normal",
"ns1.CountryLevel" : "A",
"ns1.ProcessedBy" : "USA",
"ns1.MatchScore" : 0,
"ns1.AddressLine1" : "1825 KRAMER LN",
"ns1.City" : "AUSTIN",
"ns1.StateProvince" : "TX",
"ns1.PostalCode" : "78758-4260",
"ns1.PostalCode.Base" : 78758,
"ns1.PostalCode.AddOn" : 4260,
"ns1.Country" : "UNITED STATES OF AMERICA"
}
}
}