トピックス

知識創造研究室 by CRM(xRM)

Dynamics CRM Web API 入門編

みなさん、こんばんは。
里帰り中にブログを書いている Harada です。

前回の最後に予告した通り Web API について書こうと思います。
実は今月マイクロソフト社が実施している『mstep クラスルーム』に参加してきました。どこかのトレーニングパートナーが行うのかと思っていたら、マイクロソフトの方が実施されていてビックリしたのが一番の印象ですw(そんなとこかいっ!笑)

弊社でもトレーニングを行っているので、より良いものにするにはとヒントを探しに行ったんですが、やはり技術系についてはハンズオントレーニングが必要だという事がよくわかりました。
という事で、是非Dynamics CRM ハンズオントレーニングをよろしくお願いします(やはりやってる事は間違ってないと思った次第です。はいwww)

前置きが長くなりましたが、そろそろ始めていきましょ~♪
お付き合いくださ~い!

Dynamics CRM Web API って?

Web API って新しい技術?

『Web API』って最近よく使われている言葉ですが、いったい何だろうと思った事ある方もいらっしゃると思います。
言葉自体は新しい技術ではなく、『Web』という言葉と『API』という言葉をつなげただけなんです。
まず『Web』ですが、一般的にブラウジングすることやインターネットを『Web』という事が多いのではないでしょうか。実際には『HTTP(ハイパー テキスト トランスファー プロトコル)』を使用しているものを『Web』と呼ぶことにしましょう。
そして『API』ですが、プログラムをかじった事のある人なら聞いたことある単語だと思います。Application Program Interface(アプリケーション プログラム インターフェイス)の略で、プログラミングの際に使用できる機能(命令や規約、関数等の集合)の事を指します。簡単に言うと、どのアプリーケーションでも共通で使える機能を提供する仕組みです。
この『Web』と『API』をくっつけるとどうなるでしょうか。HTTP通信を利用して共通で使える機能を提供するものと理解してもらえるでしょうか。さらに詳しく言い換えると、ネットワーク越しに利用できる関数がURLで引数を渡す事で結果が変化するもの。
これがDynamics CRM 2016 で新機能として搭載された『Web API』です。

今までの組織サービスって?

Dynamics CRM 2015 までは組織サービスというものを使用していました。これは『SOAP(シンプル オブジェクト アクセス プロトコル)』というものを使用してやり取りしていました。このSOAP(ソープと読みます)(石鹸じゃないですよ~)は簡単にいうと決められたXMLをメッセージとして使用します。そのメッセージの伝送にはHTTPが用いられることが多いです。
では、なぜWeb API が作られたのでしょうか? XMLによるメッセージのやり取りとなるため、データ転送量が増えたり、XMLを扱いづらいプログラミング言語では汎用性のないソースコードになってしまいます。
そのため、Dynamics CRMは今後SOAP から Web API へと移行されていくそうです。(SOAPの遅さは皆さんご存知だとおもます。)ただ、まだ組織サービスは残っていくと思うのですぐに対応が必要というわけではないので安心してください(穿いてますよw ではないです笑)

Dynamics CRM Web API とは

  • HTTP クライアント利用可能
    (Odata v4 をサポートする様々な3rd パーティライブラリを利用可能)
  • OAuth 2.0 対応
  • メッセージの送受信は JSON フォーマット

Web API は一般的(様々)な環境で利用可能な汎用的なお作法で使用できるものになります。いわば、世の中の主流というやつです。

Dynamics CRM Web API のリクエストについて

もう少し詳しくWeb API について見ていきましょう。
上記でも述べた通りWeb API はHTTP通信を使用します。HTTPリクエストについて簡単に説明します。

HTTPメソッド

Dynamics CRM Web API では下記のHTTPメソッドを使用してリクエストを行います。

  • GET
    レコードを取得する時、および、Web API ファンクションを呼び出す時に使用。
  • POST
    レコードを作成する時、および、Web API アクションを呼び出す時に使用。
  • PATCH
    レコードを更新する時、および、Upsertをする時に使用。
  • DELETE
    レコードを削除する時、および、特定のフィールドの値を削除する時に使用。
  • PUT
    特定のフィールドの値を更新する時に使用。

HTTPヘッダー

  • すべてのリクエストに含まれるべきヘッダー
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
  • JSON データがリクエスト本文に含まれるリクエストに含まれるべきヘッダー
    Content-Type: application/json
  • その他、特定の処理のために追加が必要なヘッダーもある(今後説明します。)

Dynamics CRM Web API のレスポンスについて

レスポンスに含まれるステータスコード(抜粋)

200 OK
処理が成功し、レスポンス本文にデータが返されるもの
204 No Content
処理が成功し、レスポンス本文にデータが返されないもの
403 Forbidden
主にDynamics CRM 上の権限が不足しているエラーが返されたもの
401 Unauthorized
主にDynamics CRM への認証でエラーが返されたもの
400 BadRequest
引数が有効でない場合に返されるもの

次回予告・・・・

次回は、実際にJavaScriptによる実装サンプルを交えながら説明していくので、乞うご期待!!!!

※ 記事の内容は個人発信の参考情報です。記事内容のご利用は、ご自身の判断でお願いします。

この記事を書いた人
原田 研吾

文系プログラマ(.NET Framework、Java)。
25歳から始めたプログラムは死ぬ気で頑張った(誰も褒めてくれないので自分で誉めてます)。
気が付けば製品開発部のマネージャー・・・
弊社Dynamics CRM トレーニングの講師をやったりもします。
事業部やら役職やらありますが、『事業部内の便利屋』が一番フィットする肩書です。
アーカス・ジャパン株式会社 CRM製品
CRM製品に関するお問い合わせ
TEL 06-6195-7501
お問い合わせはこちら

同じカテゴリの記事

Translate »