今日はroutingのカスタム設定の解説を書きたいと思います。
requestsの配列は上から順番に実行されていきます。
今回は下記の設定値をroutingに設定します。
{
"home": {
"requests": [
{
"type": "custom",
"class": "api.HomeText",
"access": "static",
"method": "get"
}
]
}
}
次に、src/model/apiにHomeText.jsを作成します。
/**
* @class
* @extends {next2d.fw.Model}
*/
export class HomeText extends next2d.fw.Model
{
/**
* @return {Promise}
* @static
*/
static get ()
{
return fetch(`${next2d.fw.config.api.endPoint}api/home.json`)
.then((responce) => { return responce.json() })
.catch((error) => { console.error(error) });
}
}
サンプル設定
| プロパティ | 値 |
|---|---|
| type | custom |
| class | api.HomeText |
| access | static |
| method | get |
class
src/modelに設置したクラスはディレクトリ階層を.として分解され、next2d.fw.packagesに登録されます。src/model/api/HomeText.jsにアクセスするにはapi.HomeTextとする事でアクセス可能です。
access
staticかpublicを設定する事ができます。staticはClass.method()で、publicはnew Class().method()をコールします。
method
コールする関数名を設定できます。今回はgetっという関数をコールする設定をしていますので、HomeText.get()がコールされます。もしpublicとした場合はnew HomeText().get()がコールされます。
name設定の役割
requestsのnameを設定するとnext2d.fw.responseにレスポンスデータが格納されます。後続のリクエストでレスポンスデータを使用したい場合は、next2d.fw.response.get(name)とすることでレスポンスデータを取得する事ができます。例えば、後続処理でQueryStringもしくは、POSTで送信などした場合に役立つのではないかと思います。
cacheの特性
また、requestsのcacheをtrueにすると、初回だけリクエストを送り、以後はキャッシュの値を再利用します。next2d.fw.cacheのMapオブジェクトに格納されますので、値参照であるJSの特性的に、キャッシュのオブジェクトデータを書き換えた物がnext2d.fw.cacheに格納され続けます。
カスタム機能を利用する事で、Auth認証や外部APIとの連携をスムーズに行う事ができます。
明日はNoCode Toolとの連携を紹介したいと思います。