2017年はLumenを使ってランプやLEDの商品情報のAPIを作ることを目標にしています。
現在、Udemyというe-Learningサイト(有料)でLinuxサーバー構築入門とLumenの講座を使って勉強中ですが、やっと取り掛かれそうなイメージが見えてきました。
■ Udemyの講座
「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で確認してみると
意図したとおりにURLパラメータを渡すことができました。
まとめ
データベースの読み込み方、書き込み方は、Udemyの講座の内容をそのまま写経しているので、それを見ながらじゃないとかけないのですが、これでようやく自分がやりたいことの道筋が見えてきました。
Lumen学習フェーズはこれにて終了し、いよいよAPI制作へと移っていきたいと思います。