thinkphp5开发restful-api接口 学习笔记一

视频学习地址:

http://study.163.com/course/courseMain.htm?courseId=1004171002

源码和文档(如果满意,欢迎 star):

https://github.com/RiversCoder/tp5-api

百度云盘链接:https://pan.baidu.com/s/1jMNumEOJ2yO5kSKYfnGjOw 密码:l8qr

看云文档:
学习笔记:
sublime 3下载地址:
 
thinkphp的报错信息只支持,string,数字,空,回调函数,不支持数组
 如果要返回数组格式的数据,需要用json或者json_encode();一下
复制代码
 1 <?php
 2 namespace app\index\controller;
 3 class Index {
 4     public function index() {
 5         $data = array(
 6             'name' => 'red_panda',
 7             'address' => 'China',
 8         );
 9         $code = 200;
10         $msg = 'ok';
11         return json_encode(['data' => $data, 'code' => $code, 'message' => $msg]);
12     }
13 }
复制代码

 config.php里可以改输出的类型(这样就可以直接return array了).

'default_return_type'=>'json' // html/json/xml/


 获取参数:

复制代码
 1 <?php
 2 namespace app\index\controller;
 3 use \think\Request;
 4 class Index {
 5     public function index() {
 6         $request = Request::instance();
 7         echo '请求方法:' . $request->method() . '<br/>';
 8         echo '访问地址:' . $request->ip() . '<br/>';
 9         echo '请求参数:';
10         dump($request->param());
11         echo '请求参数:仅包含name,sex';
12         dump($request->only(['name', 'sex']));
13         echo '请求参数:排除name,sex';
14         dump($request->except(['name', 'sex']));
15     }
16 }
复制代码

效果:

 postman post请求方法:

返回参数:

thinkphp5里判断请求方法:

复制代码
 1 <?php
 2 namespace app\index\controller;
 3 use \think\Request;
 4 class Test {
 5     public function index() {
 6         $request = Request::instance();
 7          // 是否为 GET 请求
 8         if (Request::instance()->isGet()) echo "当前为 GET 请求";
 9         // 是否为 POST 请求
10         if (Request::instance()->isPost()) echo "当前为 POST 请求";
11         // 是否为 PUT 请求
12         if (Request::instance()->isPut()) echo "当前为 PUT 请求";
13         // 是否为 DELETE 请求
14         if (Request::instance()->isDelete()) echo "当前为 DELETE 请求";
15         // 是否为 Patch 请求
16         if (Request::instance()->isPatch()) echo "当前为 PATCH 请求";
17     }
18 }
复制代码

 参数验证规则:

复制代码
 1 <?php
 2 namespace app\index\controller;
 3 use \think\Validate;
 4 class Test {
 5     public function index() {
 6         $rule = [
 7             //utf-8 一个字符对应3个字母/数字 对应2个汉字(所以这里可以入3个字母/数字或者一个汉字)
 8             'name' => 'require|max:3',
 9             'age' => 'number|between:1,120',
10             'email' => 'email',
11         ];
12         $msg = [
13             'name.require' => '名称必须',
14             'name.max' => '名称最多不能超过3个字符',
15             'age.number' => '年龄必须是数字',
16             'age.between' => '年龄只能在1-120之间',
17             'email' => '邮箱格式错误',
18         ];
19         $data = input('post.');
20         $validate = new Validate($rule, $msg);
21         $result = $validate->check($data);
22         if (!$result) {
23             dump($validate->getError());
24         }
25     }
26 }
复制代码

效果:

 **连接数据库**

复制代码
/* 数据库设置 */
'database' => [
    // 数据库类型
    'type'        => 'mysql',
    // 服务器地址
    'hostname'    => '127.0.0.1',
    // 数据库名
    'database'    => 'thinkphp',
    // 数据库用户名
    'username'    => 'root',
    // 数据库密码
    'password'    => '',
    // 数据库连接端口
    'hostport'    => '',
    // 数据库连接参数
    'params'      => [],
    // 数据库编码默认采用utf8
    'charset'     => 'utf8',
    // 数据库表前缀
    'prefix'      => '',
    // 数据库调试模式
    'debug'       => false,
],
复制代码
 **原生sql语句查询**
复制代码
 1 <?php
 2 namespace app\index\controller;
 3 use think\Db;
 4 class Index
 5 {
 6     public function index()
 7     {
 8         $res = Db::query('select version()');
 9         return $res;
10     }
11 }
复制代码

 设置路由:

 

 

posted @   HaimaBlog  阅读(16217)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示