下面以 Ubuntu + PHP + ThinkPHP(以 ThinkPHP 6 为例) 来说明如何写接口(API),从环境到示例代码一步一步来。
sudo apt update
sudo apt install php php-cli php-fpm php-mysql php-json php-mbstring php-xml php-curl -y
查看版本:
php -v
sudo apt install composer -y
composer create-project topthink/think tp-api
cd tp-api
启动测试:
php think run
默认访问:
http://localhost:8000
ThinkPHP 接口一般写在 controller 里,返回 json。
目录结构:
app/
└── controller/
└── User.php
php think make:controller User
编辑 app/controller/User.php:
<?php
namespace app\controller;
use think\facade\Request;
use think\Response;
class User
{
// 获取用户列表
public function index()
{
$data = [
['id' => 1, 'name' => '张三'],
['id' => 2, 'name' => '李四']
];
return json([
'code' => 200,
'msg' => 'success',
'data' => $data
]);
}
// 获取单个用户
public function read($id)
{
return json([
'code' => 200,
'msg' => 'success',
'data' => ['id' => $id, 'name' => '用户' . $id]
]);
}
}
编辑 route/app.php:
use think\facade\Route;
Route::get('user', 'User/index');
Route::get('user/:id', 'User/read');
访问:
http://localhost:8000/user
http://localhost:8000/user/1
public function save()
{
$name = Request::post('name');
return json([
'code' => 200,
'msg' => '创建成功',
'data' => ['name' => $name]
]);
}
路由:
Route::post('user', 'User/save');
测试:
curl -X POST http://localhost:8000/user -d "name=王五"
编辑 .env:
DB_TYPE=mysql
DB_HOST=127.0.0.1
DB_NAME=test
DB_USER=root
DB_PASS=123456
DB_PORT=3306
use app\model\User as UserModel;
public function list()
{
$list = UserModel::select();
return json($list);
}
function api($data = [], $msg = 'success', $code = 200)
{
return json([
'code' => $code,
'msg' => $msg,
'data' => $data
]);
}
✅ 使用 return json(...)
✅ 不要 echo
在 app/middleware.php 启用:
think\middleware\AllowCrossDomain::class
ThinkPHP 写接口核心三步:
如果你需要:
告诉我,我可以继续帮你写。