1
2

PHP/LaravelでJSONパーサーAPIを作ってみる。

Last updated at Posted at 2023-04-03

はじめに

naritomoと申します。

本職はインフラエンジニアを行っています。
これまでアプリ領域の技術習得のため、各種言語の開発環境Dockerの構築を行ってきましたが、laravelでのアプリ第一号を作ってみましたので、公開したいと思います。

いろいろアドバイスいただけると嬉しいです。

開発概要

以下の仕様とします。

  • API稼働フレームワークはPHP/Laravelを使用する。
  • API入力は、以下のものを入力する。
    • URLにクエリでJSONキーを指定する。(?key=key1)
    • POSTボディーにJSONデータを入れる。
  • API出力は以下のものとする。
    • クエリで指定したJSONキーに対応した値をプレーンテキストで出力する。

事前準備

以下の記事を参考にPHP/Laravel開発環境を構築してること。
Laravelサイトを参照できること。
プロジェクトフォルダ(backend)に移動する。

API構築方法

APIソース作成

コントローラファイルを作成する。

vi app/Http/Controllers/ExampleController.php

ファイル内容

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ExampleController extends Controller
{
    public function example(Request $request)
    {
        // クエリパラメータを取得
        $key = $request->query('key');

        // リクエストボディをJSONから配列に変換
        $data = $request->json()->all();

        // キーが存在する場合は、指定されたキーに対応する値を返す
        if ($key && isset($data[$key])) {
            return response($data[$key], 200)->header('Content-Type', 'application/json');
        }

        // キーが指定されていない場合は、すべてのデータを返す
        return response()->json($data);
    }
}

ルートファイルを開く。

vi routes/api.php

編集内容

以下の行を追記する。
use App\Http\Controllers\ExampleController;

Route::post('/json', [ExampleController::class, 'example']);

動作確認

新しいターミナルを立ち上げ、以下のコマンドを入力する。

curl -X POST -H "Content-Type: application/json" -d "{"name": "John", "age": "30"}" "http://localhost:8080/api/json?key=age"

30という値が返ってくること。

おわりに

Laravelでのアプリ開発第一歩として、JSONパーサーAPIを構築してみました。

この作成にはchatgptも利用して構築しています。

この記事がLaravelでのAPIを作ってみたい方の助けになればと思います。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2