4.RESTful API(Xamarin.Forms)

★ご注意

以下は、Microsoft Visual Studio Community 2019 の Xamarin.Forms を使用して、Android・iOS・UWP向けクライアントアプリを開発する場合を想定した RESTful API のご説明とサンプルプログラムです。

 

光CTIスマートコネクトサービスは、以下のRESTful APIを提供します。

 

【RESTful API インターフェース仕様  (例.収容回線)】

処理 HTTPメソッド URI
全レコードを取得 GET /CTI_SmartConnectService/RestService/ContainmentLine
1レコードを取得 GET /CTI_SmartConnectService/RestService/ContainmentLine/(回線No)
1レコードを新規登録 POST /CTI_SmartConnectService/RestService/ContainmentLine
1レコードを更新 PUT /CTI_SmartConnectService/RestService/ContainmentLine/(回線No)
1レコードを削除 DELETE /CTI_SmartConnectService/RestService/ContainmentLine/(回線No)

 

【RESTful API 呼出方法】

以下のアドレスにHTTPメソッド(GET、POST、PUT、DELETE)でアクセスすると、データの取得やレコード単位での新規登録・更新・削除を行うことができます。データはJSON形式でやり取り(リクエスト&レスポンス)します。

http://(サービスを実行中のパソコンのIPアドレス):55963/CTI_SmartConnectService/RestService/(URI)

 

◆GETの例

・収容回線の全情報を取得する

GET http://localhost:55963/CTI_SmartConnectService/RestService/ContainmentLine

・回線No.1の情報を取得する

GET http://localhost:55963/CTI_SmartConnectService/RestService/ContainmentLine/1

 

◆POSTの例

・回線の情報を新規登録する

POST http://localhost:55963/CTI_SmartConnectService/RestService/ContainmentLine

 

◆PUTの例

・回線No.2の情報を更新する

PUT http://localhost:55963/CTI_SmartConnectService/RestService/ContainmentLine/2

 

◆DELETEの例

・回線No.3の情報を削除する

DELETE http://localhost:55963/CTI_SmartConnectService/RestService/ContainmentLine/3

 

◆リクエストデータ(JSON形式)の例

{ “回線No” : “1”, “着信TEL” : “0731235678”, “代表TEL” : “0731237777”, “種別” : “電話”, “代理内線番号” : “30” }

 

※POST、PUTする際のリクエストデータのフォーマットは、1レコードGET時のフォーマットと同じです。
(但し、先頭と末尾の中括弧 [ ] は必要ありません。)

※POSTする際のリクエストデータのキー項目(ID、顧客ID、回線Noなど)には 0をセットしてください。
(どのような数値をセットしても自動的に最大番号で新規登録されます。)

※PUTする際のリクエストデータのキー項目(ID、顧客ID、回線Noなど)にどのような数値をセットしても、URI末尾の数字(数値)をキーにして更新されます。

 

◆レスポンスデータ(JSON形式)の例

{ “result” : “True”, “msg” : “正常終了” }

※POST、PUT、DELETE の戻り値は、全てこの形となります。

※GETの戻り値は [{ データ },{ データ }, ・・・] の形です。データが空の時は [ ] です。

 

 

次に、サンプルプログラムの説明をします。

 

【サンプルプログラムの利用方法】

    1. サーバーにするパソコンに「光CTIスマートコネクトサービス」をインストールします。
    2. Microsoft Visual Studio Community 2019 で Xamarin.Formsの新規プロジェクトを作成します。
    3. NuGetパッケージマネージャーで Xamarin.Forms 他を最新の状態に更新しておきます。
    4. UWPプロジェクトの場合は、機能の「インターネット(クライアント)」と「プライベートネットワーク(クライアントとサーバー)」にチェックを付けます。
    5. 以下の【クライアントプログラム(Xamarin.Forms用)のサンプルソース① MainPage.xaml】を参考にプログラムを作成します。
    6. 以下の【クライアントプログラム(Xamarin.Forms用)のサンプルソース② MainPage.xaml.cs】を参考にプログラムを作成します。
    7. 以下の【クライアントプログラム(Xamarin.Forms用)のサンプルソース③ 収容回線.cs】を参考にプログラムを作成します。
    8. 作成したクライアントプログラム(Xamarin.Forms用)をビルド後、実機(Android・iOS・UWP)上で実行します。

 

【使用するポート】

  • 55963ポート(サービス側のパソコンでオープンが必要です。)

 

【クライアントプログラム(Xamarin.Forms用)のサンプルソース① MainPage.xaml】

 

【クライアントプログラム(Xamarin.Forms用)のサンプルソース② MainPage.xaml.cs】

 

【クライアントプログラム(Xamarin.Forms用)のサンプルソース③ 収容回線.cs】

 

 

【実行画面サンプル】

 

【光CTIスマートコネクトサービスRESTful API仕様】

データ名称 データの要求・応答のタイプ URI
収容回線 データ要求・応答ともにJSON /ContainmentLine

/ContainmentLine/(回線No)

SIPサーバー接続設定 データ要求・応答ともにJSON /SIP-ServerConnection

/SIP-ServerConnection/(ID)

※ID は2以上

接続中クライアント

※GETのみ

データ応答のみJSON /ConnectedClient

/ConnectedClient/(ID)

顧客アドレス帳 データ要求・応答ともにJSON /CustomerAddress

/CustomerAddress/(顧客ID)

着信記録

※GET、PUTのみ

データ要求・応答ともにJSON /ReceivedCall-Record

/ReceivedCall-Record/(ID)

 

※以下は、GETのみ有効

/ReceivedCall-Record/(TOP)/(DESCENDING)/(K_ID)/(FROM)

  • TOP=0 … 全件(全ID)
    TOP=0以外 … 最大表示件数
  • DESCENDING=True(true) … 降順
    DESCENDING=False(false) … 昇順
  • K_ID=0 … 全顧客
    K_ID=0以外 … 特定の顧客IDで抽出
  • FROM=Null … 相手TELを指定しない
    FROM=相手TEL&相手TEL& …  = 相手TELを最大6つまで指定可能(相手TELと相手TELの間の区切りは「&」を挿入する)
着信時URL呼出 データ要求・応答ともにJSON /IncomingCall-URL

/IncomingCall-URL/(ID)

着信時コマンド呼出 データ要求・応答ともにJSON /IncomingCall-Command

/IncomingCall-Command/(ID)

通知先LINEアクセストークン データ要求・応答ともにJSON /Notification-LINE-AccessToken

/Notification-LINE-AccessToken/(ID)

通知先メールアドレス データ要求・応答ともにJSON /Notification-Email-Address

/Notification-Email-Address/(ID)

電話番号検索サイト データ要求・応答ともにJSON /PhoneNumber-SearchSite

/PhoneNumber-SearchSite/(ID)

メッセージ定義_メール用

※GET、POST、PUTのみ

データ要求・応答ともにJSON /MessDef-Mail

/MessDef-Mail/(ID)

メッセージ定義_LINE用

※GET、POST、PUTのみ

データ要求・応答ともにJSON /MessDef-Line

/MessDef-Line/(ID)

メッセージ定義_トースト用

※GET、POST、PUTのみ

データ要求・応答ともにJSON /MessDef-Toast

/MessDef-Toast/(ID)

メールアカウント

※GET、POST、PUTのみ

データ要求・応答ともにJSON /Mail-Account

/Mail-Account/(ID)

オンラインアクティベーション データ要求・応答ともにJSON /Online-Activation

/Online-Activation/(ID)

※ID は2以上

データバックアップ

※GET、POST、PUTのみ

データ要求・応答ともにJSON /DataBackup

/DataBackup/(ID)

ユーザー管理 データ要求・応答ともにJSON /UserManagement

/UserManagement/(ID)

CSVデータ出力

※GET、POST、PUTのみ

データ要求・応答ともにJSON /Output-CSV

/Output-CSV/(ID)

EXCELデータ出力

※GET、POST、PUTのみ

データ要求・応答ともにJSON /Output-EXCEL

/Output-EXCEL/(ID)