浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

LaravelのREST APIの話

素で書こうとするとそこそこ苦労するREST API周りの実装ですが、Laravelにはこのあたりに必要な機能が始めから入っているためかなり楽に作りこむことができます。

Laravelのコントローラーで文字列、もしくは配列をreturnするとjson_encode()しなくても勝手にjsonに変換してくれたり、ステータスコードを付加するのがかなり簡単だったりとほぼそのまま使える状態になっています。

また、URLとコントローラーのメソッドを対応させるルーティングについても、デフォルトでAPI用のルーティングファイル(routes/api.php)が別で用意されており、APIのルーティングだけ、Web部分のルーティングと分離して書くことができます。

api.phpに書かれたルートにアクセスするには

example.com/api/...

のように、urlにapiというディレクトリ名を挟むだけです。

ここまでは非常によくできていて、APIを作る開発者にとっては非常にありがたいのですが、個人的に難点を感じたのがREST API使用時の認証の部分。

簡易的な認証であれば、DBのユーザー情報テーブルに”api_token”というカラムを追加して、このカラムに対してユーザー登録時にapiトークンを自動生成するようにしておけばLaravelのデフォルトのメソッドを使用してapiトークンによる認証を行わせることができるようになっているのですが、このapi_tokenにあたるカラム名をカスタマイズしたりだとか、Twitterのように、トークン+セキュリティトークンの2つで認証させるようにカスタマイズしたい場合などにカスタマイズが簡単にできない点があり、独自に実装してしまった方が早い…という側面があります。

このあたりがもっと改良されてこればより実用的になると思うのですが…

かゆいところに手が届かない感があってつらいところです。

[Laravel]レスポンスをJSON形式で返す方法2つ – Qiita

基本的なルーティング – Laravel 日本語ドキュメント

API認証 – Laravel 日本語ドキュメント

  • この記事いいね! (0)