Laravelプロジェクト作成
composerはインストール済&パス設定済の前提。
$ cd プロジェクトを作成するディレクトリ $ composer create-project --prefer-dist laravel/laravel プロジェクト名
ビルトインサーバで動作確認
$ cd プロジェクトディレクトリ $ php artisan serve
http://127.0.0.1:8000にアクセス。
以下の画面が表示されればOK。
とりあえずお手軽にsqliteでDB作成
最終的にはmysqlに移行しますがとりあえず。
sqliteファイルを作成。
$ touch database/database.sqlite
.envファイル9行目~を以下のように修正。
#DB_CONNECTION=mysql DB_CONNECTION=sqlite #DB_HOST=127.0.0.1 #DB_PORT=3306 #DB_DATABASE=homestead #DB_USERNAME=homestead #DB_PASSWORD=secret
このままだとドライバがないというエラーで怒られることになるので以下をインストールしておきます。
インストール後、再度php artisan serveしてサーバ再起動しておいてください。
composer require doctrine/dbal
マイグレーションでusersテーブル作成
デフォルトで/database/migrationsにusersのマイグレーションファイルがあるのでそのままmigrateする。
$ php artisan migrate
seederでダミーデータ作成
database/seeds/DatabaseSeeder.phpを以下のように修正
<?php use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { /** * Seed the application's database. * * @return void */ public function run() { // $this->call(UsersTableSeeder::class); factory(App\User::class, 50)->create(); } }
seeder実行。
$ php artisan db:seed
こんな感じで50件のuserダミーデータが入ります。
usersをCRUDするコントローラ作成
$ php artisan make:controller UsersController --resource
–resourceオプションを付けるとREST的な雛形で生成してくれる。
app/Http/Controllers/UsersController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UsersController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { // } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } }
とりあえずindexで全ユーザを返すようにします。
public function index() { $items = User::all(); return Response($items); }
ルーティング
routes/api.phpを以下のように。
<?php use Illuminate\Http\Request; /* |-------------------------------------------------------------------------- | API Routes |-------------------------------------------------------------------------- | | Here is where you can register API routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | is assigned the "api" middleware group. Enjoy building your API! | */ /*Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); });*/ Route::group(['middleware' => 'api'], function () { Route::resource('users', 'UsersController'); });
API動作確認
http://127.0.0.1:8000/api/users
こんな感じでjsonが返ってきます。
これでひとまずAPIとして機能するところまで組みあがりました。