laravel8创建基础api接口

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错误页面

  1. 在 resources/views 目录下创建 errors 文件夹
  2. 在 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, []);
            }
        }
    }
原文地址:https://www.cnblogs.com/ximensama/p/15038528.html