UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#92 簡単なAPIの仕組みを作って、APIを理解してみる

記入日:2023-04-10 編集日:2023-04-10

簡単なAPIの仕組みを作って、APIを理解してみようと思います。

この記事を読むと(約5分)
簡単なAPIの仕組みを作って、APIを作成する方法がイメージできます。

簡単なAPIの仕組みを作って、APIを理解してみる。

以下の例では、$_SERVER['REQUEST_METHOD'] を使ってリクエストのHTTPメソッドを取得し、それに応じた処理を行っています。

GETメソッドの場合は "This is a GET request." というメッセージを含むレスポンスを、
POSTメソッドの場合はリクエストのボディに含まれるJSONデータを取得してレスポンスに含め、 同様にPUTメソッドとDELETEメソッドも処理しています。

レスポンスはheader('Content-Type: application/json');を使ってJSON形式で設定し、
json_encode()関数を使ってPHPの連想配列をJSON形式に変換しています。

このように、PHPを使ってAPIを作成する際には、リクエストのHTTPメソッドやボディのデータを取得し、それに応じた処理を行い、JSON形式でレスポンスを返すなどの基本的な概念を理解することが重要です。実際のAPIでは、データベースの操作や認証など、より複雑な処理が必要になることが多いですが、この例をベースにして拡張していくことができます。

// リクエストのメソッドに応じて処理を分岐する
switch ($_SERVER['REQUEST_METHOD']) {
    case 'GET':
        // GETメソッドの場合の処理
        $response = array('message' => 'This is a GET request.');
        break;
    case 'POST':
        // POSTメソッドの場合の処理
        // リクエストボディからJSONデータを取得する
        $data = json_decode(file_get_contents('php://input'), true);

        // TODO: POSTメソッドの処理を実装する
        // $dataを使ってデータの保存や処理を行う
        $response = array('message' => 'This is a POST request.', 'data' => $data);
        break;
    case 'PUT':
        // PUTメソッドの場合の処理
        // リクエストボディからJSONデータを取得する
        $data = json_decode(file_get_contents('php://input'), true);

        // TODO: PUTメソッドの処理を実装する
        // $dataを使ってデータの更新や処理を行う
        $response = array('message' => 'This is a PUT request.', 'data' => $data);
        break;
    case 'DELETE':
        // DELETEメソッドの場合の処理
        $response = array('message' => 'This is a DELETE request.');
        break;
    default:
        // サポートされていないメソッドの場合の処理
        $response = array('message' => 'Unsupported request method.');
        break;
}

// レスポンスをJSON形式で返す
header('Content-Type: application/json');
echo json_encode($response);

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。