zoukankan      html  css  js  c++  java
  • 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 appindexcontroller;
     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 appindexcontroller;
     3 use 	hinkRequest;
     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 appindexcontroller;
     3 use 	hinkRequest;
     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 appindexcontroller;
     3 use 	hinkValidate;
     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 appindexcontroller;
     3 use thinkDb;
     4 class Index
     5 {
     6     public function index()
     7     {
     8         $res = Db::query('select version()');
     9         return $res;
    10     }
    11 }

     设置路由:

    [Haima的博客] http://www.cnblogs.com/haima/
  • 相关阅读:
    找到数组或整数列表中连续子序列的最大和
    编写一个调用的函数,该函数接受一个括号字符串,并确定括号的顺序是否有效
    SRS流媒体服务器搭建及拉取摄像头视频流经opencv处理后再推流至SRS
    (pymysql.err.OperationalError) (1055, "Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column
    微信商户转帐到个人零钱
    双色球1千万,等你来拿!
    python后端开发面试总结
    alipay接入步骤
    Mongodb简单操作
    flask基础
  • 原文地址:https://www.cnblogs.com/haima/p/9486733.html
Copyright © 2011-2022 走看看