#実装方法:GeneXusから外部APIを呼び出す方法

こんにちは、伊豆です。

今回はGeneXusで作成した画面から外部APIを呼び出す方法について紹介します。

よく、個人情報を入力する時に

郵便番号を入れると、住所が自動で表示される場合がありますよね。

とても便利に感じでいたので、今回は「郵便番号を入れると住所を検索するAPI」を呼び出したいと思います。

完成図は下記になります。

郵便番号による住所検索 APIを無料公開している、下記のURLで紹介されているものを使いました。

https://api-doc.postcode-jp.com/#a682326cdb

まず、PostmanからAPIを呼び出してみます。

https://apis.postcode-jp.com/api/v5/postcodes/1000001

住所取得できました。

レスポンスのJSON型を確認できたので、次にGeneXusでそのレスポンスに合うSDTを作成します。

このような場面で便利な機能をご紹介します。

「JSONインポート」です。

手順は、ツールからJSONインポート選択し、先ほどのJSON型のレスポンスを貼り付けると、自動でSDTが作成されます。

1.JSONインポート選択

2.テキストを選択してJSONを貼り付け

3.「OK」を押下

完成しました。

項目の量が多い時など、活躍してくれる機能です。

次にAPI呼び出し用のプロシージャ―を作成していきます。

実装の流れとしては、webpanelから郵便番号を渡し、住所を返し、画面に表示させます。

まず、API を実行するために必要な情報をセットします。

1.データ型がHttpClientの変数を定義

2.先ほど定義した変数に情報をセットしていきます

↓URLの完成形

https://apis.postcode-jp.com/api/v5/postcodes/1000001

//HTTPS プロトコルを使用するのせ1をセット
&HttpClient.Secure = 1

//サーバー名およびIPアドレスを指定
&HttpClient.Host =’apis.postcode-jp.com’

//BaseUrl+郵便番号
&HttpClient.BaseUrl =’/api/v5/postcodes/’+&PostCd.ToString()

// API実行
&HttpClient.Execute(HttpMethod.Get,””)

3.実行結果を先ほど作成したSDTに格納する

&SDTAddress.FromJson(&httpclient.ToString())

//住所取り出し
For &SDTAddressItem in &SDTAddress

   &Address1=&SDTAddressItem.allAddress

Endfor

このような記述でAPIを呼び出すことができます。

このプロシージャ―をボタンから呼び出します。

住所が自動で入力されることが確認できました。

いかがでしたでしょうか?

ご参考にしていただけたら嬉しいです。

最後まで読んで頂きありがとうございました。