多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # 编写API接口 ## 控制器 > 创建Book控制器`app/controller/Book.php` 输入控制器的内容,通过Db类的静态方法检索数据库表book中的全部记录并以json格式输出。 > 我们编写前后端分离的接口程序都以json格式返回数据结果。 ~~~ <?php namespace app\controller; use app\BaseController; use think\facade\Db; class Book extends BaseController { public function getBookList() { // 获取数据集 $books = Db::name('book')->select(); $response = [ 'errno' => 0, 'errmsg' => '', 'data' => $books ]; return json($response); } public function getBookInfo($id=0) { $book = Db::name('book')->where(['id'=>$id])->find(); if ($book){ $response = [ 'errno' => 0, 'errmsg' => '', 'data' => $book ]; }else{ $response = [ 'errno' => 1000, 'errmsg' => '没有满足条件的数据', 'data' => null ]; } return json($response); } } ~~~ 代码说明: 门面为容器中的(动态)类提供了一个静态调用接口,相比于传统的静态方法调用, 带来了更好的可测试性和扩展性,你可以为任何的非静态类库定义一个`facade`类。 ## 使用RESTer工具测试接口 在FireFox浏览器中安装RESTer扩展插件,启动插件输入 ~~~ http://localhost:8000/index.php?s=book/getBookInfo/id/1 ~~~ ![](https://img.kancloud.cn/25/a0/25a0839a7e6494ea02b9398d1e800fde_818x565.png) 如图所示,我们看到检索到的数据以JSON对象的形式返回。 ~~~ { "errno": 0, "errmsg": "", "data": { "id": 1, "title": "ThinkPHP 5框架原理与实战 ", "author": "黑马程序员", "publisher": "中国铁道出版社", "pub_year": 2019, "isbn": "9787113259716", "price": "55.00" } } ~~~