• 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, []);
                }
            }
        }
    
  • 相关阅读:
    走势图通用写法
    配置文件通配符的问题
    jvm排查工具
    有趣的linux命令
    jQuery框架
    jQuery常见案例
    页面布局之--Font Awesome+导航
    页面布局之--导航栏功能
    页面布局之--内容区域的左右分居
    Dom,查找标签和操作标签
  • 原文地址:https://www.cnblogs.com/ximensama/p/15038528.html
Copyright © 2020-2023  润新知