[Laravel]使用PHP Laravel框架编写restful风格API

使用PHP Laravel框架编写restful风格API

准备工作

  1. 创建laravel项目
composer create-project  --prefer-dist  laravel/laravel myproject
  1. 数据库准备数据(我的数据在student库的stu表)

在这里插入图片描述

  1. 打开项目,修改项目数据库配置
  • 打开根目录下的 .env 文件进行数据库配置

项目/.env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306 
DB_DATABASE=
DB_USERNAME=mysql用户名
DB_PASSWORD=mysql密码

开始编写

  1. 创建控制器,创建模型,这里以stu为例

打开终端
创建stu模型

php artisan make:model api/stu

创建stu控制器

php artisan make:controller stuController --api

模型的路径

项目/app/api/stu.php

控制器路径

项目/app/Http/Controllers/stuController.php

  1. 注册路由与设置模型

api路由路径

项目/routes/api.php

添加代码如下

Route::apiResource("stu","stuController");
  • 此操作实现注册stu控制器的增删改查api

打开stu.php模型进行编写

class stu extends Model
{
	// 数据表名
		protected $table = "stu";
	// 主键名 如果是id可以忽略
    protected $primaryKey = "id";
	// 是否使用`$timestamps`属性,值是`false`,如果不设置为`false`,则默认会操作表中的`create_at`和`updated_at`字段,
	// 我们表中一般没有这个字段,所以设置为`false`,表示不要操作这两个字段
    public $timestamps = false;
	// 允许入库字段
    protected $fillable = [];
  // 不允许入库字段
		protected $guarded = [];
}

  1. 接下来查看控制器
class stuController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}
  • 现在方法与api地址的关系如下,可在终端中输入php artisan route:list查看

在这里插入图片描述

  1. 现在我们简单进行一些方法修改

需要引入stu模型

<?php

namespace App\Http\Controllers;

use App\api\stu;
use Illuminate\Http\Request;

class stuController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
        $data = stu::get();
        return response($data);
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
   public function store(Request $request)
    {
        //
        $data = $request->all();
        return response($data);
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
        return "show方法调用,id为".$id;
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
        return "update方法调用";
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        return "destroy方法调用,id为".$id;
    }
}

  1. 对各个api进行相应的测试

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 可以看到每个api都能被正常的调用,接下来便可以对每个方法进行自己的改造了

如此以上,restful风格API生成完毕,本章内容便不再赘述Laravel操作数据库的内容(也有可能在下一篇中)

路径方法对应表

路径方法方式通常作用
/stuindexGET获取所有数据
/stustorePOST增加数据
/stu/1showGET查看单条数据(id为1)
/stu/1updatePUT修改数据(id为1)
/stu/1destroyDELETE删除数据(id为1)

点赞收藏支持 谢谢

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值