0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Next2DAdvent Calendar 2021

Day 18

Next2D Frameworkのrouting設定[カスタム設定編]

Last updated at Posted at 2021-12-17

今日はroutingのカスタム設定の解説を書きたいと思います。
requestsの配列は上から順番に実行されていきます。

今回は下記の設定値をroutingに設定します。

routing.json
{
  "home": {
    "requests": [
      {
        "type": "custom",
        "class": "api.HomeText",
        "access": "static",
        "method": "get"
      }
    ]
  }
}

次に、src/model/apiにHomeText.jsを作成します。

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

staticpublicを設定する事ができます。staticClass.method()で、publicnew Class().method()をコールします。

method

コールする関数名を設定できます。今回はgetっという関数をコールする設定をしていますので、HomeText.get()がコールされます。もしpublicとした場合はnew HomeText().get()がコールされます。

name設定の役割

requestsnameを設定するとnext2d.fw.responseにレスポンスデータが格納されます。後続のリクエストでレスポンスデータを使用したい場合は、next2d.fw.response.get(name)とすることでレスポンスデータを取得する事ができます。例えば、後続処理でQueryStringもしくは、POSTで送信などした場合に役立つのではないかと思います。

cacheの特性

また、requestscachetrueにすると、初回だけリクエストを送り、以後はキャッシュの値を再利用します。next2d.fw.cacheのMapオブジェクトに格納されますので、値参照であるJSの特性的に、キャッシュのオブジェクトデータを書き換えた物がnext2d.fw.cacheに格納され続けます。

カスタム機能を利用する事で、Auth認証や外部APIとの連携をスムーズに行う事ができます。
明日はNoCode Toolとの連携を紹介したいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?