なぜGET blocks が必要なのか、そしてどのように機能するのか?
フロントエンドを開発するとき、必然的にバックエンドでさまざまなBPを実行する必要があります。BPを実行するためには、そのエンドポイントを呼び出す必要がある。これを行うために、AppMasterは 各エンドポイントに対して サーバ・リクエスト・ブロックを作成します。これらのブロックは、関連するエンド ポイントと同じ入出力フィールドを持ち、それを開始する手段として機能する。
GET ブロックは、REST APIの原則に従って、何らかのデータを取得する必要がある。ほとんどの場合、GET ブロックはデータベース内のモデルからデータを取得します(すべて、または特定の基準で)。
すべてのサーバー リクエストブロックと同様に、各GET ブロックはそれ自身のエンドポイントにバインドされています。エンドポイントのUrlはブロックの名前に表示される。
AppMasterは 基本的なエンドポイントを自動的に生成することに留意してほしい。しかし、BPとそのためのエンドポイントを作成することもでき、その結果、サーバーリクエストブロックを作成することができる。
の入力フィールドと出力フィールドはGET block
入力
- Endpoint ID- は、ブロックがどのエンドポイントにアクセスすべきかを決定します。このフィールドは自動的に設定されます。
- _offset- ブロックがどのレコードから情報を受け取るかを指定します。
- _limit- ブロックがロードするレコードの数。デフォルトは25で、一度に読み込める最大値は500です。
- _sort_order- このフィールドには2つの値があります:asc - 直接ソート順、 desc - 逆順; 文字列形式。
- _sort_by- リストがデータモデルのどのフィールドでソートされるかを定義します; 文字列フォーマット。
- Ids- レコードIDのリスト。特定の ID でレコードを取得できます。配列の整数値形式です。
- _search- データモデル内の指定された値を検索します; 文字列フォーマット。
- _search_exact- 完全一致検索を有効/無効にします; boolean形式。
- _ search_in- 特定のフィールドで検索します; 配列文字列形式。
検索に関連するフィールドを詳しく見てみよう。
_search- は、データモデル全体にわたって検索を行い、 値が置かれているフィールドに関係なく一致するものを見つけます。
例えば、_searchフィールドをJohnに設定しましょう。データモデルにおいて、一方のレコードのnameフィールドの値がJohnで、もう一方のレコードのemailフィールドの値が[email protected]、検索はこれら両方のレコードを見つけることになります。
_search_exact- このフィールドを有効にすると、クエリに完全にマッチするレコードが結果に含まれることになります。
リクエスト | _search_exact | 検索結果 |
John | False | John, Johny, [email protected] |
John | True | John |
_search_in- ここで、検索を行うフィールドを設定することができます。たとえば、名前だけで検索し、名前がメールの一部である場合を考慮しないようにしたい場合は、_search_inを使用して、名前フィールドだけで検索することができます。
検索データモデルフィールド
これらのフィールドは、データモデルによる検索に使用されます。検索フィールドとの主な違いは、文字列フォーマットしか受け付けないsearchとは異なり、異なる値を取ることができる点である。
出力
- _success- 検索結果; boolean フォーマット。
- _httpcode- リクエスト・レスポンス・コード。
- _error- エラーテキスト; 文字列形式。
- Data- 受信したレコード数; 配列モデル形式。
- Count- 受信したエントリの数; 整数型。
その際 _withフィールド
リクエストが関連するデータモデルに向かうこれらのブロックに表示されます。これによって、リクエストが行われたデータモデルと、それに関連するデータモデルからデータを取得することができます。
フィールドについて見てみましょう。 _withフィールドについて見てみましょう。本のリストとそのカテゴリを保存するアプリケーションの例です。
2つのデータモデルを作ります。 bookと category.の中に bookフィールドを追加します。 book_nameフィールドを、そして categoryを追加しています。 category_nameフィールドを追加しています。
それらの間に接続を作成します。カテゴリからブックに描画し、リレーションの種類を has_manyに設定しましょう。1つのカテゴリが異なるブックを参照することができるからです。
ウェブアプリケーションタブで、ブックとカテゴリのテーブルにデータをロードするように設定し、これらのテーブルにレコードを追加します。現在、リンクされたデータはテーブルに表示されません。これを修正するために _withフィールドが必要です。
このフィールドを Get blockを各テーブルに設定します。
では、アプリケーションを開いて、クエリが実行され、正しいデータがテーブルに表示されることを確認してみましょう。