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
- 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接口 学习笔记一的更多相关文章
- flask开发restful api系列(8)-再谈项目结构
上一章,我们讲到,怎么用蓝图建造一个好的项目,今天我们继续深入.上一章中,我们所有的接口都写在view.py中,如果几十个,还稍微好管理一点,假如上百个,上千个,怎么找?所有接口堆在一起就显得杂乱无章 ...
- 使用egg.js开发后端API接口系统
什么是Egg.js Egg.js 为企业级框架和应用而生,我们希望由 Egg.js 孕育出更多上层框架,帮助开发团队和开发人员降低开发和维护成本.详细的了解可以参考Egg.js的官网:https:// ...
- 使用Spring MVC开发RESTful API
第3章 使用Spring MVC开发RESTful API Restful简介 第一印象 左侧是传统写法,右侧是RESTful写法 用url描述资源,而不是行为 用http方法描述行为,使用http状 ...
- flask开发restful api
flask开发restful api 如果有几个原因可以让你爱上flask这个极其灵活的库,我想蓝图绝对应该算上一个,部署蓝图以后,你会发现整个程序结构非常清晰,模块之间相互不影响.蓝图对restfu ...
- SpringMVC Restful api接口实现
[前言] 面向资源的 Restful 风格的 api 接口本着简洁,资源,便于扩展,便于理解等等各项优势,在如今的系统服务中越来越受欢迎. .net平台有WebAPi项目是专门用来实现Restful ...
- Spring Boot入门(四):开发Web Api接口常用注解总结
本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 在程序员的日常工作中,Web开发应该是占比很重的一部分,至少我工作以来,开发的系统基本都是Web端访问的 ...
- Android NDK开发及OpenCV初步学习笔记
https://www.jianshu.com/p/c29bb20908da Android NDK开发及OpenCV初步学习笔记 Super_圣代 关注 2017.08.19 00:55* 字数 6 ...
- 整合swagger2生成Restful Api接口文档
整合swagger2生成Restful Api接口文档 swagger Restful文档生成工具 2017-9-30 官方地址:https://swagger.io/docs/specificati ...
- springmvc/springboot开发restful API
非rest的url写法: 查询 GET /user/query?name=tom 详情 GET /user/getinfo? 创建 POST /user/create?name=tom 修改 POST ...
- Spring Boot入门系列(二十)快速打造Restful API 接口
spring boot入门系列文章已经写到第二十篇,前面我们讲了spring boot的基础入门的内容,也介绍了spring boot 整合mybatis,整合redis.整合Thymeleaf 模板 ...
随机推荐
- 【Oracle】OVER(PARTITION BY)函数用法
http://blog.itpub.net/10159839/viewspace-254449/ ................................ OVER(PARTITION BY) ...
- css中如何设置透明度
怎样在CSS样式中设置背景的透明度,下面一个具体的实例.把类为box的层设为透明.<div class="box"></div><style>. ...
- Java函数的传参机制
一 最近的一个项目,里面各种返回void,参数用引用类型,那叫一个熟和多,但是也把我绕糊涂了. 我就打算好好理一理java的传参机制,整理一番 二 很多人一听Java的传参,那一定会脱口而出,java ...
- AngularJS(二):ng-app指令、表达式
本文也同步发表在我的公众号“我的天空” ng-app指令 AngularJS指令是扩展的HTML属性,所有指令均带有前缀“ng-”,我们学习的第一个指令便是ng-app,其定义了AngularJS管理 ...
- 【extjs6学习笔记】1.1 初始:创建项目
创建工作空间 sencha generate workspace /path/to/workspace 使用sencha创建应用 sencha -sdk /path/to/sdk generate a ...
- github入门之更改提交操作--6
1.回溯历史版本 1.1.回溯到创建feature-A分支前 1.1.1.要让仓库的HEAD.暂存区.当前工作树回溯到指定状态,需要用到提供目标时间点的哈希值 1.1.2.回溯至未创建feature- ...
- Java 反射机制(一)
阅读<Core Java Volume I --- Fundamentals>反射部分,总觉得许多概念艰涩难懂.模棱两可.我想造成这个结果的主要原因可能是Cay S. Horstmann和 ...
- 宿主机Windows访问虚拟机Linux文件(一)
如果用户使用windows操作系统,但是在虚拟机下配置Linux内核操作操作系统,往往需要实现通过宿主机Windows操作系统访问Linux内核操作系统中资源.本次实验实现的是宿主机windows 1 ...
- Git项目管理常用命令
安装Git Bash后,地址:https://git-scm.com/downloads 根据自己的操作系统选择对应是安装方式 可参见码云给出的文档:http://git.mydoc.io/?t=18 ...
- 【Python图像特征的音乐序列生成】生成伴奏旋律(附部分代码)
做了半天做的都是一些细枝末节的东西,嗨呀. 伴奏旋律是Ukulele和弦,MIDI发音乐器是Guitar.在弹唱的时候,Ukulele和弦就是伴奏. 我们以创建<成都>伴奏为例: 节奏型: ...