GeneXusでAPIを作成

「GeneXusでAPIはどうすれば作れますか?」との質問をいただいたので、本日は簡単なAPIを作ってみようと思います。

事前準備

今回は商品テーブルを参照し、商品データを返すAPIを作ろうと思います。

まず商品テーブルを下記のような感じで作ります。

合わせてSDTも作成します。

トランザクションが出来たら、後ほどAPIで取得するデータを登録しておきます。

API作成

では早速APIを作ってきましょう。
まずAPIはプロシージャで作成します。

プロシージャのRulesは下記のように記載。

パラメータとして商品IDを受け取って、商品の情報をSDTに格納して返します。

Sourceは下記のような感じ。


商品IDが渡ってこなかったら全件返すようにします。

プログラムの記述は以上で終了。

ただこれだとただのプロシージャなので、プロパティを変更します。

プロシージャのプロパティにあるExpose as Web ServiceをTrueに変更してください。
Main programはTrueでもFalseでもどちらでもいいです。

これでAPIの作成が完了。

API呼出検証

APIが出来たら実際に呼んでみましょう。

今回はPostmanと言うツールから呼びます。

Postmanは下記からダウンロード可能です。
https://www.postman.com/jp/downloads/

Postmanの設定は下記の通り。

まずプロシージャはPOSTで呼びます。

またURIに関してはアプリを実際に動かすときのURLと同様なのですが、プロシージャ名の前に「rest/」と付けてあげてください。
プロシージャ名は実際に定義している名前と同じにしてください。
(大文字小文字も合わせる)
またパッケージ名は不要です。

ボディにパラメータを書きます。
こちらはRulesで記載した変数名と合わせて書いてください。
(「&」は不要です)
また今回は数値型なので「0」と記載してますが、文字型の場合は「”(ダブルクォーテーション)」で囲ってあげてください。

で、実際に呼んで返ってきた結果が下記となります。

パラメータとして商品IDを渡してないので全件取得してます。

次にパラメータを渡した結果が下記となります。

正常に1商品だけ取得してますね。

まとめ

プロシージャがプロパティ1つでAPIになるのは便利ですね。

プロパティを変えても普通のプロシージャと同様にWebPanel等からも呼ぶことが可能です。

今回はデータを取得するAPIを作りましたが、データの作成や更新、削除のプロシージャを作ればそれをAPIとして呼ぶことも可能です。

また今回はGAMなどの認証は使っていないので、APIを呼ぶときに認証は入れてませんが、GAMを使っている場合はAPIキーだったり、アクセストークンだったりが必要になってきます。

やり方は下記に書いてあるので、今度時間があるときに試してみようと思います。
http://wiki.genexus.jp/hwiki.aspx?%e3%82%a2%e3%83%97%e3%83%aa%e3%82%b1%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%8b%e3%82%89+API+%e3%82%ad%e3%83%bc%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6%e3%82%b5%e3%83%bc%e3%83%93%e3%82%b9%e3%82%92%e8%a6%81%e6%b1%82%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95,

Blog一覧へ