开发项目的时候,后端和前端需要同时进行工作,这时后端接口是没做好,但是可以伪造真实接口给前端做接口请求数据渲染页面。笔者使用https://github.com/fzaninotto/Faker 很强大!
routes目录下文件树
zhang@ubuntu01:/web/web/laravel-repository-pratice$ tree routes
routes
├── api
│ ├── backend.php
│ └── frontend.php
├── api.php
├── channels.php
├── console.php
├── local
│ ├── backend.php
│ └── frontend.php
└── web.php
在routes/api.php文件里添加代码
if(App::environment('local')){
Route::prefix('frontend')->group(function () {
require_once __DIR__."/local/frontend.php";
});
Route::prefix('backend')->group(function () {
require_once __DIR__."/local/backend.php";
});
}else{
Route::prefix('frontend')->group(function () {
require_once __DIR__."/api/frontend.php";
});
Route::prefix('backend')->group(function () {
require_once __DIR__."/api/backend.php";
});
}
编辑routes/api/frontend.php文件
<?php
Route::namespace('Frontend')->group(function(){
// offer列表和信息
Route::group(['prefix' => 'offer'], function () {
// offer列表
Route::post('list', function(){
$faker = \Faker\Factory::create();
$list = [];
for ($i = 0; $i < 20; $i++) {
$info = [
'offer_id' => $faker->unique()->randomNumber(),
'offer_name' => $faker->name,
'description' => $faker->sentence(),
'status' => $faker->randomElement([0,1]),
'create_time' => strtotime($faker->date()),
];
$list[] = $info;
}
$result = [
'pageSize' => 20,
'current' => $faker->randomDigit,
'total' => 100,
'list' => $list
];
$ret = [
'code' => 200,
'msg' => '测试环境',
'result' => $result,
'request_id' => request()->header('request_id'),
];
return response()->json($ret);
});
});
});
修改.env配置文件 APP_ENV=testing 请求{{api_url}}/frontend/offer/list接口即可
源代码地址:https://github.com/windawake/laravel-repository-pratice/tree/master