一、創建項目
```
composer create-project --prefer-dist laravel/laravel weidian
```
二、路由前綴
weidian/app/Providers/RouteServiceProvider.php
~~~
/**
* Define the "api" routes for the application.
*
* These routes are typically stateless.
*
* @return void
*/
protected function mapApiRoutes()
{
Route::prefix('api') //路由前綴
->middleware('api') //中間件
->namespace($this->namespace)
->group(base_path('routes/api.php'));
}
~~~
缺省的路由前綴為api
三、api路由定義
資源控制器的方法:

測試的api
weidian/routes/api.php
~~~
Route::get('index',function(){
return 'hello api';
});
~~~
添加測試的api路由
**推薦用postman進行測試,不要用瀏覽器來做了**

訪問地址`index.php/api/index`進行訪問,圖上我進行的index.php隱藏,請自行百度或者看我laravel相關技巧里查找。
四、創建數據表
1. 首先根目錄下.env里修改
~~~
DB_CONNECTION=mysql
DB_HOST=你的數據庫地址
DB_PORT=3306
DB_DATABASE=你的數據庫
DB_USERNAME=你的用戶名
DB_PASSWORD=你的密碼
~~~
2. 數據遷移
phpstorm中的Terminal里,進入到項目目錄下,執行下面命令
```
php artisan migrate
```

進入到數據庫可以看到剛才新添加的表

我們主要用到的是users的表
五、創建資源控制器
我們要操作這樣一個數據表的時候,需要創建一個控制器,我們直接創建到`weidian/app/Http/Controllers/Api`下并添加api的版本V1目錄
我們可以在Terminal里
```
php artisan make:controller Api/V1/UserController --resource
```
weidian/app/Http/Controllers/Api/V1/UserController.php
V1目錄下會創建UserController.php
創建資源控制器路由
weidian/routes/api.php
添加
~~~
Route::resource('user','Api\V1\UserController');
~~~
`weidian/app/Http/Controllers/Api/V1/UserController.php`文件里添加如下顯示結果
~~~
public function index()
{
return '獲取所有資源';
}
~~~
postman訪問地址`index.php/api/user`

由于有版本管理的時候,可以添加路由分組
~~~
Route::group(['prefix'=>'v1','namespace'=>'Api\V1'],function (){
Route::resource('user','UserController');
});
~~~
postman訪問地址`index.php/api/v1/user`
六、Tinker命令的使用:數據交互命令臺
通過Tiniker命令生成數據
1. 首先通過命令控制臺進入tinker
```
php artisan tinker
```

2. 創建數據
控制臺輸入如下,創建15條數據
```
factory(App\User::class, 15)->create();
```


對應的代碼可以看下
weidian/database/factories/UserFactory.php
~~~
$factory->define(App\User::class, function (Faker $faker) {
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'email_verified_at' => now(),
'password' => '$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm', // secret
'remember_token' => str_random(10),
];
});
~~~
七、模型用戶資源處理
針對于使用UserController這個資源控制器操作User表中的資源
weidian/app/Http/Controllers/Api/V1/UserController.php
~~~
<?php
namespace App\Http\Controllers\Api\V1;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\User;
class UserController extends Controller
{
public function index()
{
return User::all();
}
public function show($id)
{
return User::find($id);
}
}
~~~