视频学习地址:

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 }

设置路由:

thinkphp5开发restful-api接口 学习笔记一的更多相关文章

  1. flask开发restful api系列(8)-再谈项目结构

    上一章,我们讲到,怎么用蓝图建造一个好的项目,今天我们继续深入.上一章中,我们所有的接口都写在view.py中,如果几十个,还稍微好管理一点,假如上百个,上千个,怎么找?所有接口堆在一起就显得杂乱无章 ...

  2. 使用egg.js开发后端API接口系统

    什么是Egg.js Egg.js 为企业级框架和应用而生,我们希望由 Egg.js 孕育出更多上层框架,帮助开发团队和开发人员降低开发和维护成本.详细的了解可以参考Egg.js的官网:https:// ...

  3. 使用Spring MVC开发RESTful API

    第3章 使用Spring MVC开发RESTful API Restful简介 第一印象 左侧是传统写法,右侧是RESTful写法 用url描述资源,而不是行为 用http方法描述行为,使用http状 ...

  4. flask开发restful api

    flask开发restful api 如果有几个原因可以让你爱上flask这个极其灵活的库,我想蓝图绝对应该算上一个,部署蓝图以后,你会发现整个程序结构非常清晰,模块之间相互不影响.蓝图对restfu ...

  5. SpringMVC Restful api接口实现

    [前言] 面向资源的 Restful 风格的 api 接口本着简洁,资源,便于扩展,便于理解等等各项优势,在如今的系统服务中越来越受欢迎. .net平台有WebAPi项目是专门用来实现Restful ...

  6. Spring Boot入门(四):开发Web Api接口常用注解总结

    本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 在程序员的日常工作中,Web开发应该是占比很重的一部分,至少我工作以来,开发的系统基本都是Web端访问的 ...

  7. Android NDK开发及OpenCV初步学习笔记

    https://www.jianshu.com/p/c29bb20908da Android NDK开发及OpenCV初步学习笔记 Super_圣代 关注 2017.08.19 00:55* 字数 6 ...

  8. 整合swagger2生成Restful Api接口文档

    整合swagger2生成Restful Api接口文档 swagger Restful文档生成工具 2017-9-30 官方地址:https://swagger.io/docs/specificati ...

  9. springmvc/springboot开发restful API

    非rest的url写法: 查询 GET /user/query?name=tom 详情 GET /user/getinfo? 创建 POST /user/create?name=tom 修改 POST ...

  10. Spring Boot入门系列(二十)快速打造Restful API 接口

    spring boot入门系列文章已经写到第二十篇,前面我们讲了spring boot的基础入门的内容,也介绍了spring boot 整合mybatis,整合redis.整合Thymeleaf 模板 ...

随机推荐

  1. [LOJ 2190] 「SHOI2014」信号增幅仪

    [LOJ 2190] 「SHOI2014」信号增幅仪 链接 链接 题解 坐标系直到 \(x\) 轴与椭圆长轴平行 点的坐标变换用旋转公式就可以了 因为是椭圆,所以所有点横坐标除以 \(p\) 然后最小 ...

  2. Net Core微服务

    Net Core微服务 http://www.cnblogs.com/qhbm/category/1235971.html 开发工具:VS2017 .Net Core 2.1 什么是微服务? 单体结构 ...

  3. 开园了,将以此记录个人web前端之路

    记录.分享与学习 2015年5月中旬开始学习web前端到2015年6月底找到第一份相关工作,在学习与工作过程中通过网络获益良多,在此写下个人学习与工作过程中的总结与思考,记录个人成长,同时也希望能够帮 ...

  4. Springboot优点总结

    谈到 Spring Boot,就让我们先来了解它的优点 . 依据官方的文档, Spring Boot 的优点如下: --创建独立的 Spring 应用程序 : --嵌入的 Tomcat . Jetty ...

  5. HTML5:使用postMessage实现Ajax跨域请求

    HTML5:使用postMessage实现Ajax跨域请求 由于同源策略的限制,Javascript存在跨域通信的问题,典型的跨域问题有iframe与父级的通信等. 常规的几种解决方法: (1) do ...

  6. SQL基本语法总结

    #创建数据库 DROP DATABASE IF EXISTS 数据库名; CREATE DATABASE 数据库名; #展示所有的数据库: SHOW DATABASES; #查看某个数据库的定义信息: ...

  7. css对应中文字的英文名称

    中文名 英文名 Unicode Unicode 2 Mac OS 华文细黑 STHeiti Light [STXihei] \534E\6587\7EC6\9ED1 华文细黑 华文黑体 STHeiti ...

  8. github上fork原项目,如何将本地仓库代码更新到最新版本?

    场景: 在github上fork原项目,项目组成员发起pull request提交了代码,这时自己在本地仓库该如何更新到最新代码? 操作方法如下: 方法一.从github上进行操作然后更新 登录自己的 ...

  9. win10 ,本地连接无法识别网络 ,无线正常,

    win10 ,本地连接无法识别网络  ,无线正常, 电脑诊断是:“此计算机上缺少一个或者多个网络协议” 1.手动设置ip                          失败 2.网卡卸载驱动   ...

  10. URAL 1057 Amount of Degrees (数位DP,入门)

    题意: 求给定区间[X,Y]中满足下列条件的整数个数:这个数恰好等于K个互不相等的,B的整数次幂之和.例如,设X=15,Y=20,K=2,B=2,则有且仅有下列三个数满足了要求:  17 = 24+2 ...