メインコンテンツまでスキップ

📄 HTTP メソッド

1. What is the RESTful API ?

RESTful API の設計には標準化されたデザインスタイルが採用されており、ネットワーク上の異なるシステム間の通信を容易にします。REST の原則に従うために、API は予測可能で理解しやすいものであるべきです。フロントエンド開発者として、以下の3点に重点を置いて注目します:

  • URL パス (url path):client 側のリクエスト範囲を確認します。例:
    • /products:商品リストを返す可能性がある
    • /products/abc:商品 ID が abc の商品詳細を提供する
  • HTTP メソッド:具体的な実行方法を定義します:
    • GET:データの取得に使用
    • POST:新規データの作成に使用
    • PUT:既存データの更新に使用
    • DELETE:データの削除に使用
  • ステータスコード (status code):リクエストが成功したかどうか、失敗した場合はどこに問題がある可能性があるかについての素早い指標を提供します。一般的なステータスコードには:
    • 200:成功
    • 404:リクエストしたリソースが見つからない
    • 500:サーバーエラー

2. If GET can also carry data in a request, why should we use POST?

GET でもデータを含むリクエストを送信できるのに、なぜ POST を使う必要があるのか?

主に以下の4つの観点から考慮します:

  1. セキュリティ:GET のデータは URL に付加されるため、機密データが露出しやすくなります。一方、POST はデータをリクエストの body に格納するため、相対的にセキュアです。
  2. データサイズの制限:GET を使用する場合、ブラウザとサーバーは URL の長さに制限があるため(ブラウザによって若干異なりますが、概ね 2048 bytes 前後)、データ量が制限されます。POST は名目上制限がありませんが、実務上は悪意のある攻撃による大量データの注入を防ぐため、通常はミドルウェアの設定でデータサイズを制限します(例:expressbody-parser)。
  3. セマンティクスの明確さ:開発者がリクエストの目的を明確に理解できるようにします。GET は通常データの取得に使用し、POST はデータの作成や更新に適しています。
  4. 不変性 (Immutability):HTTP プロトコルにおいて、GET メソッドは「安全」に設計されており、何回リクエストを送信しても、サーバー上のデータに変更を加える心配がありません。

3. What does the PUT method do in HTTP?

PUT メソッドの用途は何か?

主に2つの用途があります:

  1. 既存のデータを更新する(例:ユーザー情報の変更)
  2. データが存在しない場合は、新規データを追加する

Example

const axios = require('axios');

async function updateUser(userId, newName) {
const url = `https://api.example.com/users/${userId}`; // api URL
const data = {
name: newName,
};

try {
const response = await axios.put(url, data); // PUT リクエストを実行
console.log('User updated:', response.data); // 更新後のユーザー情報を出力
} catch (error) {
console.log('Error updating user:', error); // エラー情報を出力
}
}

updateUser(1, 'Pitt Wu');