如何获取并使用API网站的PHP源码?
可以为你提供一个详细的PHP API网站源码示例,这个示例将包括基本的CRUD操作(创建、读取、更新、删除)以及一些基本的错误处理和输入验证。
假设我们要创建一个管理用户信息的API,以下是完整的代码示例:
数据库连接 (`db.php`)
<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "api_demo"; try { $pdo = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // 设置PDO错误模式为异常 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { die("数据库连接失败: " . $e->getMessage()); } ?>
用户模型 (`User.php`)
<?php require 'db.php'; class User { private $pdo; private $table = 'users'; public function __construct() { global $pdo; $this->pdo = $pdo; } public function getAllUsers() { $stmt = $this->pdo->query("SELECT * FROM $this->table"); return $stmt->fetchAll(PDO::FETCH_ASSOC); } public function getUserById($id) { $stmt = $this->pdo->prepare("SELECT * FROM $this->table WHERE id = :id"); $stmt->bindParam(':id', $id, PDO::PARAM_INT); $stmt->execute(); return $stmt->fetch(PDO::FETCH_ASSOC); } public function createUser($data) { $stmt = $this->pdo->prepare("INSERT INTO $this->table (name, email) VALUES (:name, :email)"); $stmt->bindParam(':name', $data['name']); $stmt->bindParam(':email', $data['email']); return $stmt->execute(); } public function updateUser($id, $data) { $stmt = $this->pdo->prepare("UPDATE $this->table SET name = :name, email = :email WHERE id = :id"); $stmt->bindParam(':name', $data['name']); $stmt->bindParam(':email', $data['email']); $stmt->bindParam(':id', $id, PDO::PARAM_INT); return $stmt->execute(); } public function deleteUser($id) { $stmt = $this->pdo->prepare("DELETE FROM $this->table WHERE id = :id"); $stmt->bindParam(':id', $id, PDO::PARAM_INT); return $stmt->execute(); } } ?>
3. API端点 (index.php
)
<?php header('Content-Type: application/json'); header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); header('Access-Control-Allow-Headers: Content-Type'); require 'User.php'; $user = new User(); $method = $_SERVER['REQUEST_METHOD']; $requestBody = json_decode(file_get_contents('php://input'), true); switch ($method) { case 'GET': if (isset($_GET['id'])) { $userId = intval($_GET['id']); $response = $user->getUserById($userId); echo json_encode($response); } else { $response = $user->getAllUsers(); echo json_encode($response); } break; case 'POST': if (!empty($requestBody) && isset($requestBody['name'], $requestBody['email'])) { $response = $user->createUser($requestBody); echo json_encode(['status' => 'success', 'message' => 'User created successfully']); } else { http_response_code(400); echo json_encode(['status' => 'error', 'message' => 'Invalid input']); } break; case 'PUT': if (!empty($requestBody) && isset($requestBody['id'], $requestBody['name'], $requestBody['email'])) { $response = $user->updateUser(intval($requestBody['id']), $requestBody); echo json_encode(['status' => 'success', 'message' => 'User updated successfully']); } else { http_response_code(400); echo json_encode(['status' => 'error', 'message' => 'Invalid input']); } break; case 'DELETE': if (isset($requestBody['id'])) { $response = $user->deleteUser(intval($requestBody['id'])); echo json_encode(['status' => 'success', 'message' => 'User deleted successfully']); } else { http_response_code(400); echo json_encode(['status' => 'error', 'message' => 'Invalid input']); } break; default: http_response_code(405); // Method Not Allowed echo json_encode(['status' => 'error', 'message' => 'Method not allowed']); break; } ?>
4. 初始化数据库 (init_db.sql
)
CREATE DATABASE api_demo; USE api_demo; CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
运行步骤:
1、创建数据库:执行init_db.sql
脚本来创建数据库和用户表。
2、配置环境:确保你的PHP开发环境已经配置好,并且支持PDO扩展。
3、部署代码:将上述PHP文件上传到你的服务器或本地开发环境中。
4、测试API:使用Postman或其他HTTP客户端工具进行API测试。
GET /?id=1
: 获取ID为1的用户信息。
GET /
: 获取所有用户信息。
POST /
: 创建新用户,发送JSON数据如{"name": "John Doe", "email": "john@example.com"}
。
PUT /
: 更新用户信息,发送JSON数据如{"id": 1, "name": "Jane Doe", "email": "jane@example.com"}
。
DELETE /
: 删除用户,发送JSON数据如{"id": 1}
。
这样,你就拥有了一个基本的PHP API网站,可以进行用户信息的管理,你可以根据需要进一步扩展和完善这个API。
小伙伴们,上文介绍了“api网站php源码”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
-- 展开阅读全文 --
暂无评论,1人围观