Morning Girl

Web API, Windows, C#, .NET, Dynamics 365/CRM etc..

Azure SQL DatabaseをCData API ServerでWeb API(OData)アクセスできるように構成してみる その2 Azure SQL接続編

前回に続いて、今回は対象のデータベースであるAzure SQL Databaseの構成と、API Server設定手順をお伝えしていきます。

f:id:sugimomoto:20171125181527p:plain

Azure SQL Databaseの構成

まず、Azure SQL Databaseを構成しましょう。

f:id:sugimomoto:20171125181534p:plain

Azure SQLを構成するのに、特に特別な設定はいりません。

ただ、せっかくなので、サンプル入りを選んでおきます。

f:id:sugimomoto:20171125181540p:plain

構成完了後、サーバー名を確認しておきましょう。

f:id:sugimomoto:20171125181547p:plain

これだけです。ローカルからアクセスしたい場合は、サーバーファイアウォールの設定で、アクセス元IPアドレスを入れておくのだけ忘れないでください。

もし、ローカルのAPI ServerからAzure SQLに接続したい場合は、この設定が必要となります。

API Serverへ接続設定を行う

API Serverの基本的な設定方法は3ステップです。


【1.接続情報の作成】

SQL ServerMySQL、各種SaaSサービスなどに接続するための接続文字列やユーザーID・PWを設定します。

【2.リソースの作成】

[1.]の接続先情報からWeb API化する対象テーブルの選択と、操作内容の設定します。

【3.ユーザーの作成】

作成したリソースへWeb API経由でアクセスするためのユーザー情報を作成します。


まず、接続情報の作成から。

API Serverの管理画面にログインし[設定]→[接続]→「+Add Connection」を選択します。

f:id:sugimomoto:20171125181557p:plain

この画面から、対象のデータベース・サービスを選択することができます。

今回はAzure SQL、つまるところ、SQL Serverなので、[SQL Server]をクリックします。

f:id:sugimomoto:20171125181603p:plain

[Name]に任意の識別用名称を入力し、先程構成したAzure SQLのServerURL、対象のDatabase名、SQL ServerアカウントのUserID・PWを入力します。

f:id:sugimomoto:20171125181608p:plain

次に、データベースの中からWeb API化したい、対象のテーブルを選択していきます。

[リソース]→「リソースを追加」をクリックします。

f:id:sugimomoto:20171125181614p:plain

先程作成した接続情報を選択し

f:id:sugimomoto:20171125181621p:plain

対象のテーブルを選択します。

今回はサンプルで作成されているCustomerを選択してみました。

f:id:sugimomoto:20171125181628p:plain

API Serverでは、Web APIとして公開する対象のテーブルにおいて、許可する操作方法(GET/POST/PUT/DELETE)と公開するカラムを選択することができます。

リソース名は後述するWeb APIのエンドポイント名になります。

今回はそのまま保存してしまいましょう。

f:id:sugimomoto:20171125181636p:plain

以下のようにリソースが作成されればOKです。

f:id:sugimomoto:20171125181642p:plain

最後にユーザーの登録です。

[ユーザー]→[+追加]をクリックし

f:id:sugimomoto:20171125181649p:plain

任意のユーザー名と許可する操作を設定し、保存します。

f:id:sugimomoto:20171125181655p:plain

保存後、Authトークンが自動的に生成されますので、これを利用してWeb APIにアクセスできるようになります。

f:id:sugimomoto:20171125181701p:plain

以上で、設定完了です。

これでもうWeb APIとして利用できるようになります。

Web APIの利用

では、実際にWeb APIを利用してみましょう。

API Serverはリソースを作成した時点で、同時にAPI のドキュメントを生成します。

API]をクリックすると、先程作成したリソースがドキュメントとして登録されていることがわかるかと思います。

f:id:sugimomoto:20171125181708p:plain

あとは、そのURLを使って、POSTMANでGetリクエスト等を構成

アクセスする際には、Basic 認証で登録したユーザーID・PWを付与してあげればOKです。

以下のようにAzure SQLに構成されたサンプルデータが取得できました。

f:id:sugimomoto:20171125181715p:plain

もちろん、Getだけでなく、レコードの作成・更新・削除もそれぞれのメソッドで実行することができます。

また、OData形式なので、各種URLクエリ、SelectやFilterにも対応しています。

まとめ

これ以外にもAPI Serverには細かな設定やカスタマイズが可能になっています。

例えば、ストアドプロシージャを公開してビジネスロジックを扱わせたり、リソースアクセスの細かな設定も可能です。

OpenAPI(Swagger)の定義もそのまま生成されているので、他のアプリケーションとの組み合わせも色々と試してもらうことができます。

連携あたりは、後日このブログでも色々と書いていこうかなと思います。