「LaravelでREST APIを実装してみたい」
このように、ある程度PHPの学習が進んだのであれば、次にPHPフレームワークの学習をしてみたいですよね。PHPフレームワークにもいくつか種類がありますが、今回は「Laravel」について紹介していきます。
Laravelは開発の自由度も高く、多くのユーザーに利用されているため情報量が多いことも特徴です。今回の記事ではLaravelを使い、REST APIの実装方法についてご紹介するので、ぜひ参考にしてみてくださいね。
目次
Laravelとはどんなもの?
まずはPHPフレームワークの「Laravel」についてご紹介します。
Laravelは2011年にリリースされたPHPフレームワークのことで、他のフレームワークと比較して後発ではありますが、開発において扱いやすいことから人気を集めているフレームワークです。
Laravelのバージョンは以下の通りです。
Version | Release | Bug Fixes Until | Security Fixes Until |
---|---|---|---|
6 (LTS) | September 3rd, 2019 | September 7th, 2021 | September 6th, 2022 |
7 | March 3rd, 2020 | October 6th, 2020 | March 3rd, 2021 |
8 | September 8th, 2020 | March 1st, 2022 | September 6th, 2022 |
9 (LTS) | September, 2021 | September, 2023 | September, 2024 |
10 | September, 2022 | March, 2024 | September, 2024 |
Laravel公式サイトを参考にすると良いのですが、バージョンの横に「LTS」と記述されています。これはLong Term Supportの略で、長期サポートという意味になります。
バージョンが新しいものを選びがちですが、「LTS」がついていないバージョンは長期サポートが保証されていないということなので、セキュリティ対策も考慮して「LTS」がついたバージョンで開発を行うのがおすすめです。
【PHP入門】PHPのフレームワーク4選!Laravelの特徴について
Laravelは開発の場でとても注目されているPHPフレームワークです。それはLaravelの特徴によるもので、開発を行う上で便利な機能などが実装されているからです。
具体的なLaravelの特徴は、以下の4つ。今回はこの4つの項目について解説していきます。
- 開発自由度が高い
- 開発支援が充実している
- 幅広い開発に対応
- ユーザー数が多く情報が多い
開発自由度が高い
Laravelは開発の自由度がとても高いことが特徴です。自由度が高いということはアプリケーションに求める制約が少ないということで、アプリケーションコードのディレクトリや名前空間など、基本的に自由に変更できます。
逆に自由度が高く、開発プロジェクトによって構成が違ったり、構成自体どのように行うべきかユーザーに判断が委ねられるため、慣れていない初期の段階では扱いに戸惑うこともあるかもしれません。
とはいえデフォルトの構成は用意されています。こだわりがなければそのまま使用すれば良いのですが、構造の変更や拡張が簡単に行える分、構成が複雑になっていることを認識しておきましょう。
開発支援が充実している
LaravelはWebアプリケーションを実行するための機能のほか、開発支援に関する機能が充実しています。例えばコードの生成機能、自動化ツールなど、様々な機能を活用してアプリケーションの開発を行うことが可能です。
このような開発支援はオープンソースで公開されているためLaravel以外でも活用できますが、あらかじめ必要機能が備わっているLaravelを使用する方が、ユーザーはのちにパッケージを探したり連携方法を探すなどの手間が省け、効率よく開発を行うことができます。
幅広い開発に対応
PHPはWebアプリケーションケーション開発に多く利用されます。例えばPHPを使うことでログイン機能の実装などをすることができるため、活用できる幅は広いと言えるでしょう。
またLaravelの他にもフレームワークやライブラリがあり、開発の用途によって使い分けられます。
フレームワークの一つであるLaravelですが、下記の通り様々な開発のニーズを満たすことができます。
- ToDoリストなどのタスク管理アプリ
- ログイン機能を必要とするWebサイト
- 勤怠管理などの業務管理システム
- 画像や動画の共有サイト
WebサイトからWebアプリケーションまで幅広く開発ができるため、とても使い勝手の良いフレームワークであると言えるでしょう。
ユーザー数が多く情報が多い
日本国内に絞れば「CakePHP」と人気がふたつに分かれるLaravelですが、Googleトレンドで検索してみると、2017年を境にLaravelの方が人気が上回っています。2020年の9月にはGitHubのスター数は60,000を超えており、これはサーバーサイドのWebアプリケーションフレームワークとしては最多。
このように多くのユーザー数がいるためインターネットや書籍などでの情報量が多く、開発を行う際や不具合などが起きた場合に対応しやすいのです。
【IT知識】APIとは何?
アプリケーションプログラミングインタフェース(API、英: Application Programming Interface)とは、ソフトウェアコンポーネントが互いにやりとりするのに使用するインタフェースの仕様である。
引用:Wikipedia
少し難しいかもしれないですが、簡単にまとめると”ソフトウェアの機能を共有できる仕組み”なのです。
Laravelを使ったREST APIの実装方法
それではLaravelを使い、「REST API」を実装していきましょう。RESTful API(REST API)とは、Webシステムを外部から利用するためのプログラムの呼び出し規約(API)の種類の一つで、RESTと呼ばれる設計原則に従って策定されたもののことです。
Laravelのインストール
まだLaravelのインストールができていない場合は、composerを使いインストールしましょう。下記コードでインストールができます。
1 |
composer create-project --prefer-dist laravel/laravel api-test |
.envの修正
MySQL等のデータベース(DB)サーバが立ち上がっていることを確認し、接続のために以下を修正します。
1 2 3 4 5 6 7 8 9 10 |
DB_CONNECTION=mysql -DB_HOST=127.0.0.1 +DB_HOST={接続対象ホスト} DB_PORT=3306 -DB_DATABASE=homestead +DB_DATABASE={接続対象DBスキーマ名} -DB_USERNAME=homestead +DB_USERNAME={接続対象DBユーザ名} -DB_PASSWORD=secret +DB_PASSWORD={接続対象DBパスワード} |
DB接続用のモデルを作成
次に以下のコマンドを実行し、DB接続用のモデルを作成しましょう。
1 |
php artisan make:model News |
APIコントローラの作成
続いて以下コマンドにて、APIコントローラーを作成していきます。
1 |
php artisan make:controller NewsController --resource |
その後、生成したコントローラを以下のように編集しましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; +use App\News; class NewsController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { - // + return response(News::all()); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { - // + return response(News::find($id)); } |
ルーティングの設定
下記コマンドにて、ルーティングの設定を行います。
1 |
Route::resource('news', 'NewsController'); |
動作確認
では動作確認を行っていきましょう。
以下コマンドを実行して、ローカルホストでWebサーバを立ち上げます。(Laravel標準のビルドインサーバ機能を利用)
1 2 |
$ php artisan serve Laravel development server started: <http://127.0.0.1:8000> |
まとめ
いかがでしたか?
今回の記事では、「Laravelを使ってREST APIを実装する方法」をご紹介しました。
今回ご紹介したREST APIの他、Laravelは様々な開発を行うことができるPHPのフレームワークです。便利に開発を進められるよう、使い方を覚えていきましょう!
PHPオンラインで学習しよう!サイトやスクールを紹介