REST API使用HTTP方法进行CRUD操作:
<?php
$method = $_SERVER['REQUEST_METHOD'];
switch ($method) {
case 'GET':
getUsers();
break;
case 'POST':
createUser();
break;
case 'PUT':
updateUser();
break;
case 'DELETE':
deleteUser();
break;
}
?>
<?php
header('Content-Type: application/json');
$response = [
'status' => 'success',
'data' => [
'id' => 1,
'name' => '张三'
]
];
echo json_encode($response);
?>
<?php
$json = file_get_contents('php://input');
$data = json_decode($json, true);
$name = $data['name'] ?? '';
$email = $data['email'] ?? '';
?>
<?php
header('Content-Type: application/json');
function sendResponse($status, $data = null, $message = '') {
http_response_code($status);
echo json_encode([
'status' => $status < 400 ? 'success' : 'error',
'data' => $data,
'message' => $message
]);
exit;
}
// GET /api/users
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
$users = $pdo->query("SELECT * FROM users")->fetchAll();
sendResponse(200, $users);
}
// POST /api/users
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$data = json_decode(file_get_contents('php://input'), true);
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->execute([$data['name'], $data['email']]);
sendResponse(201, ['id' => $pdo->lastInsertId()], '创建成功');
}
?>
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
header('Access-Control-Allow-Headers: Content-Type');
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
exit(0);
}
?>