[Shippo] Address Validation API は Invalid な Zip Code を渡しても Valid な Zip Code が取得できる
Shippo の Address Validation API は Invalid な Zip Code を渡しても Valid な Zip Code が取得できるようでした。
Zip Code の validation をしたくて Shippo の Address Validation API を利用して、検証できないか確認したのが本記事の内容です。
以下、サンプルコードです。
Request
US では存在しない zip=a という値で validate の API Request を送ってみました。
curl https://api.goshippo.com/addresses/ \\
-H "Authorization: ShippoToken " \\
-d name="Shawn Ippotle" \\
-d company="Shippo" \\
-d street1="215 Clayton St." \\
-d city="San Francisco" \\
-d state="CA" \\
-d zip=a \\
-d country="US" \\
-d email="[email protected]"\\
-d validate=true
Response
API Response は “object_state”: “VALID”, “zip”: “94117-1913” という正しい値が返ってくることを確認しました。
{
"object_state":"VALID",
"object_purpose":"QUOTE",
"object_source":"VALIDATOR",
"object_created":"2019-09-10T12:50:31.681Z",
"object_updated":"2019-09-10T12:50:31.689Z",
"object_id":"5cee8f0855514008a9688f9199df6fa6",
"object_owner":"[email protected]",
"name":"Shawn Ippotle",
"company":"Shippo",
"street_no":"",
"street1":"215 Clayton St",
"street2":"",
"street3":"",
"city":"San Francisco",
"state":"CA",
"zip":"94117-1913",
"country":"US",
"longitude":-122.44938,
"latitude":37.77335,
"phone":"",
"email":"[email protected]",
"is_residential":true,
"ip":"",
"messages":[
],
"metadata":"",
"test":true
}
Address Validation API では、入力値の zip を validate することはできないようでした。しかし、country, state, city, street1 などを元に、正しい zip が取得できるので、API Response の zip を利用する実装にしておけば困らないのかなと思いました。
以上、Shippo の Address Validation API で Zip Code も検証したい、現場からお送りしました。