REST - Webサービス
はじめに
REST リクエストとは、サーバーで処理されたデータの情報を返すオンラインアドレスです。サーバー側には、データベースと連携し、安全性と信頼性が求められるデータのビジネスロジックが含まれています。
詳細は REST をご覧ください
REST API の構築は Netuno のサービスに基づいて行われます。
ALL
Netuno で任意の HTTP メソッドに応答するサービスを作成するには:
📂 server/services/watashi-no-sabisu.js
ブラウザでは、このサービスは次のアドレスで全種類のリクエストに対して実行されます:
GET
GET タイプのアドレスは、通常、一覧表示やデータ取得の操作に使用されます。
Netuno で GET メソッドのみに応答するサービスを作成するには、次のいずれかの形式を使用します:
📂 server/services/ichiran/get.js📂 server/services/ichiran.get.js
ブラウザでは、このサービスは次のアドレスで GET リクエストのみに対して実行されます:
POST
POST タイプのアドレスは、通常、新しいデータを作成または生成する操作に使用されます。
Netuno で POST メソッドのみに応答するサービスを作成するには、次のいずれかの形式でコードファイルを作成します:
📂 server/services/sakusei/post.js📂 server/services/sakusei.post.js
このサービスは、次のアドレスで POST リクエストのみに対して実行されます:
PUT
PUT タイプのアドレスは、通常、データレコードを変更する操作に使用されます。
Netuno で PUT メソッドのみに応答するサービスを作成するには、次のいずれかの形式でコードファイルを作成します:
📂 server/services/koshin/put.js📂 server/services/koshin.put.js
このサービスは、次のアドレスで PUT リクエストのみに対して実行されます:
DELETE
DELETE タイプのアドレスは、通常、データレコードを削除する操作に使用されます。
Netuno で DELETE メソッドのみに応答するサービスを作成するには、次のいずれかの形式でコードファイルを作成します:
📂 server/services/sakujo/delete.js📂 server/services/sakujo.delete.js
このサービスは、次のアドレスで DELETE リクエストのみに対して実行されます:
OPTIONS
フロントエンドとの統合では、CORS の検証プロセス中にブラウザが OPTIONS タイプの呼び出しを行います。
詳細は CORS をご覧ください。
Netuno で OPTIONS メソッドのみに応答するサービスを作成するには、次のいずれかの形式でコードファイルを作成します:
📂 server/services/ichiran-suru/options.js📂 server/services/ichiran-suru.options.js
外部のフロントエンド(Web サイトなど)と統合するすべてのサービスに実装する必要があります。
通常使用されるコード:
_out.json(_val.map().set("result", true))
このサービスは、次のアドレスで OPTIONS リクエストに対して実行されます:
クライアントとテストの実行
特定のメソッドタイプでサービスをテストするには、REST API をテストする専用プログラムを使用できます。例:
CURL
ターミナルで curl コマンドを使用すると、任意の種類のテストを実行できます。
コンソール/コマンドラインから GET を送信します:
curl http://localhost:9000/services/hozon
-X でメソッドタイプを指定できます:
curl -X POST -F 'namae=Tesuto' -F 'email=email@rei.com' http://localhost:9000/services/hozon
-Fパラメータは Content-Type:multipart/form-dataで送信します
パラメータを送信する別の方法:
curl -X POST -d 'namae=Tesuto' -d 'email=email@rei.com' http://localhost:9000/services/hozon
次のように連結することもできます:
curl -X POST -d 'namae=Tesuto&email=email@rei.com' http://localhost:9000/services/hozon
-dパラメータは Content-Type:application/x-www-form-urlencodedで送信します
JSON
JSON 形式で送信するには、コンテンツタイプを指定する必要があります:
curl -X POST -H "Content-Type: application/json" \
-d '{"namae": "Tesuto", "email": "email@rei.com"}' \
http://localhost:9000/services/hozon
-Hはヘッダー(HEADER)のパラメータ設定を定義します
アップロード
ファイルをアップロードするには:
curl -X POST -F 'gazou=@/home/riyousha/fairu.jpg' http://localhost:9000/services/hozon
Service Client - NPM
フロントエンドとの統合を簡単に行うために、NPM モジュールが提供されています:
インストールコマンド:npm i -S @netuno/service-client
次のようにサービスのアドレスを定義すると:
_service.config({
prefix: 'http://localhost:9000/services/'
});
フロントエンドと統合されたサービスを実行できます。例:
_service({
url: "/services/watashi-no-sabisu",
method: 'POST',
data: { param1: "1", param2: "2" },
success: (response) => {
if (response.json) {
console.log("サービス応答", response.json);
}
},
fail: (e) => {
console.log("サービスエラー", e);
}
});
まとめ
サービスを目的の HTTP メソッドタイプのみに制限できます。
フロントエンドと統合するには、最も低いレベルでは fetch を使用して行えます。
実装を迅速かつ標準化するために、NPM モジュール @netuno/service-client が提供されています。