laravel8创建基础api接口
一、建立实体类
php artisan make:model api/User
二、建立User控制器
php artisan make:controller UserController --api
三、建立api控制类
php artisan make:controller ApiController
四、User控制器继承api控制类
五、分页
// 获取全部可显示字段
$data = User::get();
// 获取指定字段
$data = User::select('id','name','email')->get();
// 获取指定字段并分页
$data = User::select('id','name','email')->paginate(10);
六、404错误页面
- 在 resources/views 目录下创建 errors 文件夹
- 在 resources/views/errors 目录下创建 404.blade.php 文件,并编写返回的内容
七、展示数据
请求方式:GET
public function show($id)
{
// 获取数据
// 数据存在 返回成功信息
// 数据不存在
// 参数超出范围导致数据不存在
// 参数类型错误导致数据不存在
$data = User::select('id', 'name', 'email')->find($id);
if (isset($data)) {
return $this->create('数据获取成功', 200, $data);
} else {
if (is_numeric($id)) {
return $this->create('用户不存在', 204, []);
} else {
return $this->create('id 参数错误', 400, []);
}
}
}
八、新增数据
请求方式:POST
public function store(Request $request)
{
// 接收数据
$data = $request->all();
// 数据验证
$validator = Validator::make($data, [
'name' => 'required|min:2|max:50',
'email' => 'required|min:2|max:50|email',
'password' => 'required|min:6|max:50',
]);
if ($validator->fails()) {
return $this->create($validator->errors(), 400);
} else {
$newUser = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => md5($request->password),
]);
$newUser = User::select('id', 'name', 'email')->find($newUser['id']);
return $this->create('用户创建成功', 200, $newUser);
}
}
九、删除数据
请求方式:DELETE
public function destroy($id)
{
// 获取数据
// 数据存在,删除
// 数据不存在
// 参数超出范围导致数据不存在
// 参数类型错误导致数据不存在
$data = User::find($id);
if (isset($data)) {
if ($data->delete()) {
return $this->create('用户删除成功', 200);
}
} else {
if (is_numeric($id)) {
return $this->create('用户不存在,无法删除', 204, []);
} else {
return $this->create('id 参数错误', 400, []);
}
}
}
十、修改数据
请求方式:PUT
public function update(Request $request, $id)
{
// 接收数据
// 验证数据
// 查找用户
// 如果用户不存在
// 更新并返回信息
$data = $request->all();
$validator = Validator::make($data, [
'name' => 'required|min:2|max:50',
'password' => 'required|min:6|max:50',
]);
if ($validator->fails()) {
return $this->create($validator->errors(), 400);
}
$user = User::find($id);
if (isset($user)) {
if ($user->update([
'name' => $request->name,
'password' => md5($request->password),
])) {
return $this->create('用户更新成功', 200);
}
} else {
if (is_numeric($id)) {
return $this->create('用户不存在,无法更新', 204, []);
} else {
return $this->create('id 参数错误', 400, []);
}
}
}