在一个基本的 ThinkPHP 开发环境启动成功以后,还要对 PHP 的配置文件、ThinkPHP 框架的数据库连接配置做一些改变,才能进行 RESTFul 接口的开发。ThinkPHP 开发环境搭建方法请参考 https://blog.yanand.tech/archives/150.html

PHP 配置
ThinkPHP 应用要访问数据库,要在 PHP 中开启数据库扩展,打开 D:\DevTools\php-7.4.1\php.ini 文件,找到如下两个配置,去掉前面的注释:
extension=mysqli
extension=pdo_mysql
ThinkPHP 数据库配置
创建数据库和建表的过程这里不再描述,我创建好的数据名为 qanmi,表名为 user,表中主要有三个字段 id,name,age。

到工程目录下,例如我的是 D:\E\Workspace\php\tp 找到 .example.env 文件,复制一份重命名为 .env,打开 .env 修改数据库配置为自己创建好的数据库配置。
[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = qanmi
USERNAME = your_username
PASSWORD = your_password
生成接口代码
ThinkPHP 提供了自动生成部分代码的功能,命令提示符定位到工程目录,输入命令来生成代码。
D:\E\Workspace\php\tp>php think make:controller User --api
Controller:app\controller\User created successfully.
D:\E\Workspace\php\tp>php think make:model User
Model:app\model\User created successfully.
这时一共生成了两个 User.php 文件,controller 下面的用来编写接口,model 下面的用来编写模型。模型中不需要再写任何的代码,它已经提供了对数据库基本的增删改查操作,controller 中调用模型数据库的操作还需要自行编写。以下是我编写的 controller 代码。
use app\model\User as UserModel;
class User
{
/**
* 显示资源列表
*
* @return \think\Response
*/
public function index()
{
return UserModel::field('id,name,age,create_time')->select();
}
/**
* 保存新建的资源
*
* @param \think\Request $request
* @return \think\Response
*/
public function save(Request $request)
{
$data = $request->only(['name','age']);
UserModel::create($data);
}
/**
* 显示指定的资源
*
* @param int $id
* @return \think\Response
*/
public function read($id)
{
return UserModel::field('id,name,age,create_time')->find($id);
}
/**
* 保存更新的资源
*
* @param \think\Request $request
* @param int $id
* @return \think\Response
*/
public function update(Request $request, $id)
{
$data = $request->only(['name','age']);
UserModel::update($data, ['id' => $id]);
}
/**
* 删除指定资源
*
* @param int $id
* @return \think\Response
*/
public function delete($id)
{
UserModel::destroy($id);
}
}
controller 编写完成后需要将它注册到路由中,打开 \route\app.php 文件,加入资源路由声明。
Route::resource('user', 'User');
表示注册了一个名称为 user 的资源路由到 User 控制器,系统会自动注册5个路由规则,如下:
标识 | 请求类型 | 生成路由规则 | 对应操作方法(默认) |
---|---|---|---|
index | GET | user | index |
save | POST | user | save |
read | GET | user/:id | read |
update | PUT | user/:id | update |
delete | DELETE | user/:id | delete |
测试接口
使用 Postman 测试查询接口 http://localhost:8000/user/25
