视频学习地址:

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. D. Statistics of Recompressing Videos

    D. Statistics of Recompressing Videos time limit per test 3 seconds memory limit per test 256 megaby ...

  2. 前端html与css学习笔记总结篇(超详细)

    第一部分 HTML 第一章 职业规划和前景 职业方向规划定位: web前端开发工程师 web网站架构师 自己创业 转岗管理或其他 web前端开发的前景展望: 未来IT行业企业需求最多的人才 结合最新的 ...

  3. IO(字节流、字符流)

      第1章 字节流 在前面的学习过程中,我们一直都是在操作文件或者文件夹,并没有给文件中写任何数据.现在我们就要开始给文件中写数据,或者读取文件中的数据. 1.1 字节输出流OutputStream ...

  4. 密码强度的正则表达式(JavaScript)总结

    简言 本文给出了两个密码强度的正则表达式方案,一个简单,一个更复杂和安全.并分别给出了两个方案的解析和测试程序.一般大家可以根据自己的项目的实际需要,自行定义自己的密码正则约定. 前言 用户注册时,都 ...

  5. 登录控制 BaseController

    执行方法前 判断 sessin 登录信息 是否为空 ,空的话 返回 登录界面 并且给 LoginUser 赋值 public abstract class BaseController : Contr ...

  6. telegraf1.8+influxdb1.6+grafana5.2 环境搭建 结合JMeter3.2

    telegraf1.8+influxdb1.6+grafana5.2 环境搭建 结合JMeter3.2 参考地址:https://blog.csdn.net/laisinanvictor/articl ...

  7. HDU 4507 吉哥系列故事——恨7不成妻 (数位DP)

    题意: 如果一个整数符合下面3个条件之一,那么我们就说这个整数和7有关: 1.整数中某一位是7: 2.整数的每一位加起来的和是7的整数倍: 3.这个整数是7的整数倍: 给定一个区间[L,R],问在此区 ...

  8. Logback文档(1)

    http://b6ec263c.wiz03.com/share/s/2SX2oY0nX4f32CY5ax1bapaL030VCK2svQZU2rRyDR05KMh5

  9. IO流_File类

        流(stream):流是一连串流动的数据(字节.字符),以先进先出的方式发送的信息的通道中.    输入流   数据从源数据源流入程序的过程称为输入流.可以理解为从源数据源读取数据到程序的过程 ...

  10. 【转】HTTP Live Streaming直播(iOS直播)技术分析与实现

    HTTP Live Streaming直播(iOS直播)技术分析与实现 不经意间发现,大半年没写博客了,自觉汗颜.实则2012后半年,家中的事一样接着一样发生,实在是没有时间.快过年了,总算忙里偷闲, ...