見出し画像

Velo 第48回 fetch( ) を使う

fetch( ) 関数はHTTPおよびHTTPSリクエストを送信するためのプロミスベースの API です。
コンテンツが存在する URL を引数にして呼び出し、戻り値はwixFetchResponseというプロミスです。
それが解決すればコンテンツが返されます。

ここでは Wix Reference 掲示のエンドポイントから世界の「挨拶」をゲットします。
そのために先ずバックエンドに新規Webモジュールを作り、ファイル名を getGreeting.jsw とします。

新規WEBモジュール

このファイルでfetch( ) 関数を使います。
URL は Velo Reference に掲載のあったエンドポイントです。
ここには世界の「挨拶のリスト」があり、HTTPリクエストがあればAPI がランダムに「挨拶」を選んでレスポンスするようです。
選ばれた挨拶のオブジェクトは2つのプロパティ message、language を持ちます。
以下のコードではレスポンスが正常なら挨拶を JSON で返すように指示しています。
万一失敗ならテキストで「すいません」を返します。

getGreeting.jsw

プレイボタンをクリックして実行させると languageが 'French'、message が 'Bonjour monde!' であるオブジェクトが返っています。
実験成功です。

getRandomGreeting( ) 関数の実行

ページにはクリックイベントを発生させるボタン(fetchButton) と挨拶、言語を 表示させるテキストを配置します。

ページ要素

コードページの冒頭で Webモジュールから関数 getRandomGreeting( ) をインストールしています。
次に、ボタン(fetchButton)のクリックイベントを非同期で設定しています。その中で、戻り値がオブジェクトなら挨拶を表示させます。
そうでなければ「すいません」が表示されます。

ページコード

プレビューの結果です。

世界の挨拶

Velo Developer certification の4択問題に fetch( ) の引用があります。いくつかご紹介します。

Which of the following can you use to interact with external sources using Velo? Select all answers that apply.

  • wix-fetch

  • npm modules

  • CURL

  • $.ajax( )

How do you send a POST request using wix-fetch?

  • Define POST as the method in the fetch options.

  • No need to. POST is already the default method when using wix-fetch.

  • wix-fetch is only for GET requests. You need to use wix-send instead.

  • Use wix-fetch in the backend, and then it defaults to POST.

Which of the following statements about wix-fetch is correct?

  • The fetch() function retrieves a JSON resource from network. It returns a Promise that resolves to a JSON object representing the response to the request.

  • The wix-fetch() function retrieves an XML resource from the network.It returns Promise that resolves to an object representing the response to the request.

  • In order to use wix-fetch in the frontend you need to use $w.ajax() .

  • The fetch() function fetches an HTTPS resource from the network. It returns a Promise that resolves to a WixFetchResponse.

プログラマーでもない限りお手上げの問題で…

Velo開発のご依頼はこちら


この記事が気に入ったらサポートをしてみませんか?