外部APIリクエスト
Appmaster.ioを使った外部APIリクエストの送信の実際
理屈が多くない?
実践してみよう。AppMasterを開き、それを使ってAPIリクエストを作成し、このリクエストがどのように機能するかをより深く理解しましょう。
外部APIリクエストの作成
APIリクエストは「ビジネスロジック」セクションの「外部APIリクエスト」タブで作成します。
いよいよ "+ New API Request "をクリックします。
名前と説明は何でも設定可能で、あくまで私たちが個人的に使用するためのものです。
本当に重要なデータを扱いましょう。
リクエストの作成に最低限必要なのは、メソッドとアドレス(URL)を指定することです。まずは最後の1つから。
URL
URL - Uniform Resource Locator(ユニフォーム・リソース・ロケーター)。インターネット上の特定のリソースに与えられるアドレス。ブラウザのアドレスバーにURLを入力すると、目的のサイトが表示されます。ブラウザーのアドレスバーにURLを入力し、目的のサイトを開く。同時に、リソース自体は、画像、ビデオ、データセットなど、何でもよい。主なものは、このリソースが特定のポインタ、つまりこのリソースを取得するためのリクエストを送信するためのURLを持っていることです。
メソッド
アドレスのデータを参照しながら、リクエストのメソッド(タイプとも言う)、つまり、このデータで実際に何をする必要があるかを示す。
最初のモジュールのタスクに対してリクエストを送ると、データが送られてきました。これがGETメソッドです。このメソッドは最もわかりやすいメソッドであり、また唯一必要とされるメソッドでもあります。そのため、明示的に指定しなくても、デフォルトでこれがGETであると判断されました。
他にどんなメソッドがあるのか見てみましょう。
HTTPの規格自体は、使用できるメソッドの数を制限していません。同時に、互換性を維持するために、最も標準的なメソッドの一部だけが今も使われています。AppMaster APIのリクエストで使用できるメソッドは、5種類あります。
GET。すでに扱われている。このメソッドは、リソースの提供を要求し、データを受信する。
POST。どこかからデータを取得するには、まずこのデータをそこに配置する必要がある。POSTメソッドはまさにそれを行うものです。データをサーバーに送信し、リソースを作成します。
PUT。POSTメソッドと似ていますが、このメソッドはデータを更新するのが仕事です。新しいデータを作成するのではなく、既存のデータを置き換えて更新します。
DELETE。その名の通り、データを削除する。
PATCH。このメソッドはPUTと似ていますが、データを完全に置き換えるのではなく、部分的に更新するために使用されます。例えば、PATCHメソッドを使用すると、記事のタイトルを変更したり、あるパラメータの値を変更したりすることができます。
ここで重要なのは、サーバーはメソッドで指定されたことを正確に実行する必要は全くないという事実を考慮することです。DELETEメソッドを使ってあるページのアドレスを送ることはできますが、これはサーバーが実際にそれを削除することを意味するものではありません。しかし、純粋に理論的には、彼はGETコマンドでこれを行うことができます。あるいは、何も変更せず、同時にPOSTに応答してデータを送信する。開発者がそのように設定したというだけの理由で。
ここでRESTが登場するわけだが、これは命令の遵守に同意し、混乱を止め、メソッドに示されたことを正確に実行する時だと言っているのである。少なくとも、これが主な作業であるべきです(必ずしもこれだけではありませんが)。例えば、ある記事の内容をGETメソッドで転送するとき、同時にその記事の閲覧数のカウンターを1増やすことができる。
というわけで、データがどこにあって、何ができるのかがわかりました。さらに進めて、リクエストが他にどのようなコンポーネントを持つことができるかを見てみましょう。
URL パラメータ
URLパラメータ。URLの一部しか知らないという状況があります。例として、Appmaster.ioのウェブサイトの記事があります。すべての記事の開始アドレスは同じです -https://appmaster.io/blog/.しかし、各記事にはそれぞれタイトルがあり、それに応じて、この特定の記事を正確に表示するための個別の部分があります。
このような場合、URL Params が使われます。一般的な部分は即座に規定し、残りはプロセスで決定するようにします。その結果、URLはhttps://appmaster.io/blog/:id/のような形で記述されます。
既知の部分はそのまま記述し、「:」記号の後に変数部分を配置する。この変数部分の名前(すでに「:」がない)が、パラメータのリストに追加される。この場合、可変部分は複数存在する可能性があり、その位置はURLのどこにでもなります。
クエリパラメータ
クエリパラメータ。最初のモジュールで、boredapi.comに リクエストを送ったのを覚えていますか?そして、アドレスに加えて、追加のデータが規定されていました。それがQuery Paramsでした。
これらはURLの後に書かれていて、"? "記号で区切られています。パラメータ名、"="記号、パラメータ自体の値が表示される。複数のパラメータを一度に使用する場合は、"&"記号で区切られる。
しかし、AppMasterでパラメータを指定する場合、リクエストルールについて考える必要はない。全て自動的に適切に整形される。パラメータ自体の名前を指定して、リストに追加するだけでいいのです。
クエリパラメータは、データソースは同じでもデータそのものが異なる場合に使用します。例えば、Boredapiには膨大なリストが含まれていました。しかし、私たちは一人を対象としたものだけに興味があり、それをリクエスト・パラメータで指定しました。
もう一つの使用例は、データ量を制限することです。たとえば、あるリストにアクセスして、そこから最初の5つのエントリだけを要求することができます。この量も、クエリパラメータにすることができます。
もうひとつのオプションは、アクセスキーです。モジュール 1 で Alphavantage を参照したときに、このオプションを使用したことがあるかもしれません。データを取得するには、登録し、リクエストパラメータにパーソナルキーを送信する必要があります。
インターネット上で閲覧するページにも、様々なパラメータが含まれているはずです。例えば、Ventusky.comの 天気予報のページを開くと、クエリパラメータに緯度と経度の地理的な値が送信されます。
ヘッダー
ヘッダ。リクエストヘッダ。通常、ヘッダーにはリクエストに関するサービス情報(メタ情報)が含まれる。ヘッダーによって、サーバーはデータを要求しているクライアントに関するより多くの情報を得ることができます。ヘッダーには、どのブラウザーが使われているか、どのエンコーディングでレスポンスが期待されているか、どの言語で書かれているか、リクエストの正確な時刻などの情報が含まれることがあります。保護されたデータにアクセスする場合、ヘッダーには認証キーが含まれることがあります。
ほとんどの場合、ヘッダは任意です。最初のモジュールでも、私たちはすでにヘッダを指定しないリクエストを行いました (ただし、これはリクエストがヘッダなしで実際に送信されたことを意味しません)。
ボディ
ボディ。リクエストのボディです。GET リクエストでは通常これを指定しませんが、もし何らかのデータをサーバーに送りたい場合、POST や PUT リクエストを送れば、このデータはリクエストボディに置かれます。同時に、リクエストボディには、例えば動画ファイルを送るなど、何らかの数値や文字列に限定されず、複雑なデータを置くことができる。