一、生成测试数据
首先建立表,建立model,建立controller。
然后使用faker自动生成数据。
database--factories--ModelFactory.php
$factory ->define(App\Lesson::class,function(Faker\Generator $faker){
return [
'title' = > $faker->sentence,
'body' =>$faker->paragraph,
'free' => $faker->boolean();
];
});
php artisan tinker
namespace App;
factory(Lesson::class,60)->create();//生成60条数据
二、初步实现API系统
1.路由:
Routes::group(['prefix' => 'api/v1'], function(){
Route::resource('lessons','LessonsController');
});
php artisan route:list;//查看路由
2.返回JSON格式
return Lesson::all();
$lesson=Lesson::findOrFail($id); return $lesson;
//return 会自动转换为JSON格式
3.在Model文件中
protected $hidden = ['title'];//禁止输出某些属性
4.直接return问题
1)暴露数据结构
2)没有错误提示
三、API字段映射
1.增加提示消息
return \Response::json([
'status'=>'success',
'status_code'=> 200,
'data' =>$lessons->toArray();
]);
2.防止暴露数据库表结构
'data' => $this->transform($lessons);
private function transformCollection($lessons)
{
return array_map([$this,'transform'],$lessons->toArray());
}
private function transform($lesson)
{
return[
'title' =>$lesson['title'],
'content' => $lesson['body'],
'is_free' => (boolean)$lesson['free']
<