整理总结thinkphp5如何使用restful

53 篇文章 1 订阅
22 篇文章 1 订阅

创建api目录

在这里插入图片描述

在api目录中创建控制器和配置文件

如下图:
在这里插入图片描述

api的test控制器

在这里插入图片描述

<?php

namespace app\api\controller;

use think\Controller;

class Test extends Controller
{

    public function index()
    {
        return [
            'status' => 0,
            'msg' => 'success'
        ];
    }

    //put 需要定义$id
    public function update($id = '')
    {
        $put_data = input('put.');
        $data = array(
            'id' => $id,
            'put_data' => $put_data
        );
        return $data;
    }

    //delete 需要定义$id 然后用提交的id值替换
    public function delete($id = '')
    {

        $data = array(
            'id' => $id,
        );
        return $data;
    }

    //post 需要定义$id
    public function save()
    {
        $post_data = input('post.');
        $data = array(
            'post_data' => $post_data
        );
        return $data;
    }
}

config.php中配置返回格式

<?php

return [
    //设置返回数据类型为json格式
    'default_return_type'=>'json',

];

设置路由

在thinkphpwu/application目录下有一个route.php文件

在这里插入图片描述

自动注册路由规则

在路由配置文件中使用__rest__添加资源路由定义:

return [
    // 定义资源路由
    '__rest__'=>[
        // 指向index模块的blog控制器
        'blog'=>'index/blog',
    ],
    // 定义普通路由
    'hello/:id'=>'index/hello',
]

设置后会自动注册7个路由规则

标识请求类型生成路由规则对应操作方法(默认)
indexGETblogindex
createGETblog/createcreate
savePOSTblogsave
readGETblog/:idread
editGETblog/:id/editedit
updatePUTblog/:idupdate
deleteDELETEblog/:iddelete

具体指向的控制器由路由地址决定,例如上面的设置,会对应index模块的blog控制器,你只需要为Blog控制器创建以上对应的操作方法就可以支持下面的URL访问:

http://serverName/blog/
http://serverName/blog/128
http://serverName/blog/28/edit

Blog控制器中的对应方法如下:

namespace app\index\controller;
class Blog {
    public function index(){
    }
    
    public function read($id){
    }    
    
    public function edit($id){
    }    
}

单独设置路由

具体代码如下:

<?php
//引用think的路由底层Route类
use think\Route;

//设置路由

//get方式
Route::get('test', 'api/test/index');

//put方式
Route::put('test/:id', 'api/test/update');

//delete方式
Route::delete('test/:id', 'api/test/delete');

//post方式
//Route::post('test', 'api/test/save');

//resource方式 对应7种方式
Route::resource('test', 'api/test');

Route::resource(‘test’, ‘api/test’); 这种方式包含了post方式请求,自动查找对应的save方法

get方式请求

在这里插入图片描述
返回后台设置的内容

put方式请求

在这里插入图片描述
请求路径为http://app.thinkphpwu.com/test/888
对应的888表示id,put_data就是我们提交的数据,后台可以根据自身的业务进行修改操作

delete方式请求

在这里插入图片描述
请求的是delete方法,返回要删除的id的值

post方式请求

在这里插入图片描述

通用化API接口数据封装

在application目录中的公共函数common.php 文件 增加 show方法

/**
 * 通用化API接口数据输出
 * @param int $status 业务状态码
 * @param string $message 信息提示
 * @param [] $data  数据
 * @param int $httpCode http状态码
 * @return array
 */
function show($status, $message, $data = [], $httpCode = 200)
{

    $data = [
        'status' => $status,
        'message' => $message,
        'data' => $data,
    ];

    return json($data, $httpCode);
}

在需要返回给前端的函数中调用show方法,比如我们在test控制器的save方法中调用show,代码如下:

    public function save()
    {
        $post_data = input('post.');
        $data = array(
            'post_data' => $post_data
        );
        return show(0, '保存成功!', $data);
    }

使用postman请求,得到返回的数据如下图:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值