一、创建项目
```
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路由定义
资源控制器的方法:
![](https://box.kancloud.cn/1798086015a71fe1a601fba3601508dc_551x236.png)
测试的api
weidian/routes/api.php
~~~
Route::get('index',function(){
return 'hello api';
});
~~~
添加测试的api路由
**推荐用postman进行测试,不要用浏览器来做了**
![](https://box.kancloud.cn/295f83360128ede12dd797fd79613bf2_358x294.png)
访问地址`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
```
![](https://box.kancloud.cn/f674f6a2ad46017efd23fa34171bf785_703x196.png)
进入到数据库可以看到刚才新添加的表
![](https://box.kancloud.cn/164d9f2ff807eee567bdd6e063dc017b_129x66.png)
我们主要用到的是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`
![](https://box.kancloud.cn/f5c97d2bd0785e45b8cb95ab70054dbd_355x291.png)
由于有版本管理的时候,可以添加路由分组
~~~
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
```
![](https://box.kancloud.cn/b916f3dd209bda85aa82205c354c65f4_464x88.png)
2. 创建数据
控制台输入如下,创建15条数据
```
factory(App\User::class, 15)->create();
```
![](https://box.kancloud.cn/b44dbd5c44860c21bef0d35b4d2ad1fd_884x367.png)
![](https://box.kancloud.cn/535efa44c4fb7b3485b9220bffe92bca_1069x357.png)
对应的代码可以看下
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);
}
}
~~~