4Dは、4Dデータベースに保存されているデータに直接アクセスできる強力なRESTサーバーを提供します。これにより、例えば、最新のフロントエンド技術(例えば、Angular、Reactなど)で使用するためのAPIを構築することが可能になります。このブログ記事では、4DロバストRESTサーバーの最初のイントロダクションを提供します。また、APIテストツールのPostmanを使用して、作成、取得、更新、削除(CRUD)操作をどのように設定し、テストするかを説明します。
RESTサーバーを設定する
注:REST サーバーと 4D データベースの設定方法をすでにご存知の場合は、次の 2 つのセクションは読み飛ばしていただいてかまいません。
4D RESTサーバを利用するには、まず設定する必要があります(ワンクリックで起動します)。RESTリクエストを処理するために、データベース設定の “Web/RESTリソース “ページで、”RESTサーバーとして公開する “オプションをチェックするだけです。
4Dデータベースの作成と設定
- このステップは、あなたがすでにデータベースを作成し、Restサーバーを有効にしていることを前提としています。構造体に移動して、新しいテーブル[Tasks]を作成し、2つの属性を持ちます。タイトル (アルファ) と完了 (ブール) の2つの属性があります。デフォルトでは、すべてのテーブルがRESTで公開されます。
重要: テーブルとフィールドの名前は、JSON に準拠する必要があります (発音区別文字やスペースは使用しないでください)。
- さて、入力フォームと出力フォームを作成しましょう。Tasks テーブルにいくつかのタスクを入力します。
- Runメニューから、Start Web Server(まだ起動していない場合)を選択し、Test Web Serverを選択します。
- おめでとうございます。これで、RESTリクエストだけを使って、4D内のデータを読んだり編集したりできるようになりました。
なぜ、そう言えるのでしょうか?簡単です、ウェブブラウザーを開いて、ADDRESS:PORTの後に、“/rest“を挿入してください。(4D の REST URL リクエストはすべて /rest で始まります)。
例えば、[Tasks]データクラスのすべてのエンティティを取得したい場合、次のようにします。
PostmanでAPIをテストする
4D RESTサーバのすごいところは、APIがCRUD(とそれ以上!)の操作を提供し、すぐに実行できることです。エンティティの作成、読み込み、更新、削除には、1行もコードが必要ありません。すべてはあなたのために準備されているのです。ご存知のように、CRUDはデータベース操作の中で最も重要なグループです。なぜなら、ユーザーがデータを作成し管理するために必要な主な機能だからです。
この素晴らしいAPIをテストするために、Postman(RESTfulなAPIをテストするための優れたツール)を使ってみましょう。PostmanはGET, POST, PUT/UPDATE, DELETEやその他様々なリクエストメソッドのようなHTMLリクエストを行うための洗練されたユーザインタフェースを提供します。
Note: Postman の使い方は簡単ですが、使い始めにヘルプが必要な場合は、このビデオをご覧ください。
タスクのリストを取得する
Postman をダウンロードしたら起動し、様々なリクエストを作成しましょう。まずは一番わかりやすいリクエストから。タスクのリストを[Tasks]テーブルから取得することです。先に述べたように、[Tasks]データクラスのすべてのエンティティを取得するには、ADDRESS:PORTの後に/rest/NameOfTheDataclassを必ず挿入してください。
- メソッドの一覧からGETメソッドを選択します。
- URLをコピーします。
- 送信をクリックする
- 完了です。
ご覧の通り、タスクのリストを取得するために必要なコードは1行もありません!このように、タスクのリストを取得するために必要なコードは1行もありません。
新しいタスクを作成する
データクラスに新しいタスクを追加することもできます…これもコードなしです。APIはすでにあなたのために用意されているのです!
新しいエンティティを作成するために、このURLは新しいポストリクエストを起動します。ADDRESS:PORT/rest/NameOfTheDataclass/?$method=update.これを行うには、アプリケーションにJSONリクエストを送信する必要があります。GETリクエストの結果を確認すれば、新しいタスクを作成するために必要なキーのアイデアが得られます。つまり、このロジックに従えば、必要なのはタイトルと完全なフィールドだけです。残りの部分(キー、タイムスタンプ、スタンプ、ID)は4Dが処理します。
- メソッドをPOSTに変更します。
- URLを挿入します。
- 送信をクリックします。
- 新しいタスクを追加します。
- 成功=trueであることを確認します
最初のタブ(GETメソッド)に戻って、「送信」をクリックし、タスクが追加されたことを確認します。また、4D出力フォームで新しいタスクが追加されたかどうかを確認することもできます。
タスクを更新する
エンティティを更新するには、エンティティを作成したときと同じメソッドを使用します。method=updateを使うと、1回のPOSTで1つ以上のエンティティを更新することができます。これを行うには、オブジェクトの __KEY と __STAMP パラメータを、変更した属性といっしょに渡す必要があります。
この例では、Hemingwayの最も不朽の作品の一つを読み終えたところです。The Old Man and the Sea(老人と海)です。したがって、タスクの完了ステータスをtrueに変更する必要があります。簡単ですね。
タスクの削除
エンティティの削除も簡単です。この例では、ID = 3 のタスク(”test “と呼ばれる)を削除したいと思います。問題ありません。dataclass(ID)?$method=delete のように、ID を指定してdeleteメソッドをコールします。
4Dデータベースに戻り、エンティティが削除されたことを確認してください。もう、ないんですね?
次は何でしょう?
ご覧の通り、4D RESTサーバーは強力です。4D RESTサーバーは、今、私たちが示した以上のリッチなAPIを提供します。短時間でできることはまだまだたくさんあります。詳細なドキュメントをチェックしてみてください。次回のブログでは、認証に関するヒントを紹介し、その後、ReactJSで書かれた完全なフロントエンドアプリケーションと4DデータベースへのウェブアクセスのためのRESTを紹介する予定です。