REST APIの公開 Mendix | Mendix

メインコンテンツへスキップ

REST APIの公開 Mendix

REST APIの公開 Mendix

アプリケーション プログラミング インターフェイス (API) は、今日の Web 上で 2 台のコンピューターまたはシステムが相互に通信するための標準的な方法になっています。ここで「標準」という言葉を慎重に使用しているのは、API 開発に携わったことがある人なら、API がプロジェクトごとに特別で一意になる傾向があることを知っているからです。

あなたが目にするほとんどのAPIは、Representational State Transfer(略してREST)と呼ばれる一連のルールに従います。このブログでは、REST APIとその仕組みに焦点を当てます。 Mendix.

次は何を表現しますか?

簡単に言うと、REST はデータの転送を管理する一連の「ルール」またはプロトコルです。API がこれらのルールに従う場合、RESTful API と呼ばれます。REST という用語は、2000 年に発表された Roy Fielding の博士論文「アーキテクチャ スタイルとネットワークベースのソフトウェア アーキテクチャの設計」で造られました。心配しないでください。RESTful API を理解するために彼の論文を読む必要はありません。それ以来、RESTful API は今日の Web 上のシステム間でデータを転送する事実上の方法になっています。

では、これらのルールとは何でしょうか? 簡単に答えると、ルールは API によって異なりますが、一般的に受け入れられているいくつかの標準が API を RESTful にするのに役立ちます。

  • エンティティやリソースを一意のURIに整理しますURI は Uniform Resource Identifier の略です。URI は、ネットワークの場所とアクセスしようとしているリソースの 2 つの部分で構成されます。ネットワークの場所は通常、Web サイトの URL であり、リソースは Web サイトが保持するデータのテーブルです。
  • これは、 ステートレスつまり、必要な詳細情報を正しく提供すれば、任意の API を任意の順序で呼び出すことができます。また、サーバーがクライアントのセッション データを保存する必要がないため、高パフォーマンスのアプリにも適しています。
  • これは、使用して HTTPメソッドRESTful API にはさまざまなタイプまたは HTTP メソッドがあります。データとやり取りする方法によって、使用するメソッドのタイプが決まります。(GET データを取得します。 POST データを作成し、 PATCH データを更新し、 DELETE データを破壊または消去します。他にもありますが、これらが*主なもの*です。
  • データペイロードは次のようにフォーマットされます JSONの or XMLほとんどのREST APIは、データをJSONまたはXMLペイロードにフォーマットします。他の形式には、HTML、マークアップ、画像、ドキュメントなどがあります(APIが複数のペイロード形式をサポートしている場合、「同意” ヘッダー)

RESTの歴史と標準についてもっと知りたい場合は、以下をご覧ください。 Wikipedia.

消費と出版

API 開発では、他のユーザーが使用できるように API を公開することと、自分で API を使用することには違いがあります。 Mendix 両方が可能で、同じアプリ内で他のシステムから REST API を使用し、独自の REST API を公開することができます。アプリによっては、アーキテクチャの一部として公開されている独自のサービスを呼び出すものもあります。

前回の記事は消費についてでしたが、このブログでは REST APIの公開についてお話します in Mendix.

ここで言及する価値があります Mendix OData APIもサポート すぐに使用できる OData は、特定のシナリオで多くの利点を提供し、スキップ、フィルター、並べ替え、選択などの強力なフィルターを備えています。ただし、この記事は標準の REST API に関するものであり、OData については次のブログで取り上げたいと思います。これは広範なトピックであり、詳細に説明したいと考えています。

公開された REST サービスの作成

何かを学ぶ最良の方法は、実際にやってみることです。そのため、このセクションでは、REST API を公開する方法に関する実践的なガイドを紹介します。シンプルなユースケースを扱うために、シンプルな API コレクションを作成し、すでに構築したシンプルな映画カタログ アプリを操作する方法を紹介します。

ご覧のとおり、このアプリは映画のタイトルのリストとその映画の IMDB ページへのリンクを表示するだけのホームページです。データを入力すれば、操作できるようになります。

ドメインモデル内のエンティティからデータを公開したい場合は、エンティティを選択して右クリックし、「RESTリソースとして公開」を選択するだけです。

プロジェクト内のサービスが求められますが、プロジェクトの任意のモジュールで新しいサービスを作成することを選択できます。この例では、Movielist という名前を付けました。

次に、キー属性を決定する必要があります。これは、特定のデータとやり取りし、キーによるGET、パッチ、削除などのHTTPメソッドを使用する場合にのみ必要です。

「OK」をクリックすると、Studio Pro が残りの作業を処理し、エンティティを REST API として提供するために必要なすべてのマッピングとロジックを生成します。

この時点で、プロジェクトをローカルで実行し、Postman またはその他の API テスト ソフトウェアを介して API を操作できます。

アプリが実行されると、新しいサービスにアクセスできるようになり (ローカル開発マシン上)、{Your_app_URL/api-doc/ でアプリの公開済み API の概要を確認できるようになります。私の例では次のようになります。 https://localhost:8080/api-doc/

Postman で API をテストする

アプリが起動し、 Postman 同じマシンにインストールして開くと、Studio Pro によって生成された GET メソッドの詳細をダブルクリックして開くことができます。

「example location」というフィールドがあることに気づくでしょう。これは、アプリのローカル コピーのローカル ホストとランタイム ポートを使用しているため、例です。これは Postman では問題なく機能するため、この URI をコピーしてそこで使用できます。

Postman で新しいリクエストを作成し、リクエスト URI フィールドに URI を貼り付けて、送信をクリックします。

下のウィンドウに、XML 形式で返された結果が表示されます。ステータス フィールドも 200 OK として返されていることに注意してください。これは、リクエストが正常に処理されたことを意味します。

自分でやる

簡単そうに聞こえますが、サービスの動作をより細かく制御したい場合はどうすればよいでしょうか。Studio Pro に頼って生成してもらう必要はありません。API を完全にゼロから作成し、細部まで自分の好みに合わせて指定することもできます。

上で、作成した自動生成サービスは XML 形式でデータを返すと述べました。ほとんどのシナリオではこれで問題ありませんが、代わりに JSON 形式で結果を返したい場合はどうすればよいでしょうか。

このエンドポイントのロジックを処理するマイクロフローを開くことができます。この場合、それは「Movies_Get_All」と呼ばれます。

現在、マイクロフローはすべてのレコードを取得して返すだけです。XML への変換は、「Movies_Export」と呼ばれる REST サービスに接続されたエクスポート マッピングによって処理されます。

戻り値の型を変更するには JSONでは 「Accept」ヘッダーを使用する 値「アプリケーション/JSON」と上で述べた通りです。

アプリを再実行せずに、「Accept」-「Application/JSON」ヘッダーを追加する以外の詳細を変更せずに、Postman で再度テストします。

すべてが成功した場合、JSON でペイロードを受け取ります。サービスの応答時間が約 400 ミリ秒短縮されたことに注目してください。これは API 応答時間が大幅に改善されたことを意味します。これは、JSON がデータ転送用に特別に設計されているためです。次のような最適化のベスト プラクティスを使用して、応答時間をさらに短縮するためにサービスを微調整できます。 インデックスの適用 データベースの取得時間を短縮します。

ゼロから構築

これをさらに一歩進めて、API のすべてのコンポーネントを最初から作成することもできます。ここでは、この公開されたサービス用に、ユーザーに特別に挨拶する新しいリソースを構築して、これを試してみましょう。

まず、公開されたサービスのリソースの下にある「追加」をクリックし、新しいリソースに名前を付けます (私は「hellothere」という名前を付けました)。次に、「OK」をクリックします。

次に、このリソースの操作を作成する必要があります。新しいリソースを選択した状態で、「操作」の下の「追加」をクリックします。

メソッドは GET のままにして、操作パスは変更しません。ロジックを処理するマイクロフローを提供する必要があるだけです。[選択] をクリックし、フローを配置する場所を選択して、[新規] をクリックします。自動生成されたマイクロフロー名「GetHelloThere」を使用しました。

フローを開き、マイクロフロー エンドポイントをダブルクリックして、データ ペイロードをカスタム JSON 文字列として指定できるようにします。

'{''挨拶'':''https://www.youtube.com/watch?v=eaEMSKzqGAg”}'

引用符に注目 挨拶と Youtube リンクの JSON キーと値のペアの周囲に。 これらは二重引用符ではなく、2つの単一引用符の開始と終了です。これは、Studio Proが引用符を文字列変数の区切りとして解釈するため、文字列をエスケープするためです。 これはStudio Proに応答内に引用符を含めるように指示します.

これでアプリを再実行してPostmanで新しいサービスをテストできます。すべてがうまくいけば、カスタムペイロードが返されます。 200 OKステータス.

準備完了!

これで、独自のREST APIを作成するために必要なすべてのことが分かりました。 Mendixサービスにセキュリティ、認証、カスタム ヘッダーを追加するなど、さらに詳しく知りたい場合は、必ず academy.mendix.com にアクセスして学習してください。OData の世界に飛び込む次の記事もぜひご覧ください。

言語を選択してください