LumenのURLパラメータ渡し方チェック完了!LED API制作へ

2017年はLumenを使ってランプやLEDの商品情報のAPIを作ることを目標にしています。

現在、Udemyというe-Learningサイト(有料)でLinuxサーバー構築入門とLumenの講座を使って勉強中ですが、やっと取り掛かれそうなイメージが見えてきました。

■ Udemyの講座

【3日でできる】はじめてのLinuxサーバー構築入門

「Create Fast RESTful APIs with Lumen and Homestead by Laravel and PHP」

ちなみに、Lumenの講座は英語ですが、ゆっくりとわかりやすい英語で話してくれているのと、プログラミングのことなので、けっこう理解できてます。

* ↓これまでオンライン英会話で勉強していたことも役立っています。

私がDMM英会話を1年8ヶ月続けられている5つの理由 – オンライン英会話オススメ情報

サーバーの問題やroutesの問題などをクリアして、ようやくAPIが作れそうなメドがつきました。

URLパラメーターをどのように取得するかを本日わかったので、そのメモです。

目次

やりたいこと

hoge.com/lamps?name=cdm-r&type=mastercolor

URLの後にnameとかtypeとかの値をURLにつけて、それに対する製品情報をAPIとしてgetしたい。

Udemyの講座では、 hoge.com/teachers/id/course のような方法しか紹介されていなかったので、URLパラメータをどのようにやるのかは、Lumenの公式サイトに出てた方法を試してやり方を理解しました。

HTTP Requests – Lumen – PHP Micro-Framework By Laravel

方法

routes.phpにコントローラーを指定し、LampsコントローラーをつくればOK

app/Http/routes.php

routes.phpには、このように記載

<?php

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/

$app->get('/lamps','LampController@index');

hoge.comの後のURLを設定する。

app/Http/Controllers

Controllersフォルダに、LampControllers.phpファイルを作成。
以下のように記載

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class LampController extends Controller
{
    public function index(Request $request)
    {
        $name = $request->input('name');
        $type = $request->input('type');

        $html = $name.'と'.$type;
        return $html;
      
    }
}

use Illuminate\Http\Requestと書いて、
メソッド(index)にRequest $requestを渡してあげれば、
$request->input(‘name’)
とすれば、パラメータとして渡したnameの値を取得することができる。

POSTMANで確認してみると

lumen

意図したとおりにURLパラメータを渡すことができました。

まとめ

データベースの読み込み方、書き込み方は、Udemyの講座の内容をそのまま写経しているので、それを見ながらじゃないとかけないのですが、これでようやく自分がやりたいことの道筋が見えてきました。

Lumen学習フェーズはこれにて終了し、いよいよAPI制作へと移っていきたいと思います。