인터넷 기술의 발전으로 Web API는 많은 애플리케이션의 핵심이 되었습니다. 모바일 앱, 클라우드 컴퓨팅 또는 SaaS 애플리케이션을 개발하든 웹 API는 중요한 역할을 합니다. 효율적인 API를 설계하는 방법은 웹 개발자가 마스터해야 하는 기술 중 하나가 되었습니다. 이 기사에서는 PHP를 사용하여 효율적인 API를 설계하는 기술을 소개합니다.
RESTful API는 널리 사용되는 웹 API 디자인 스타일입니다. HTTP 프로토콜을 기반으로 하며, GET, POST, PUT, DELETE 등의 HTTP 메소드를 사용하여 리소스를 운용하고, HTTP 상태 코드 및 JSON/XML 형식을 사용하여 결과를 반환합니다.
RESTful API를 설계할 때 다음 사양을 따라야 합니다.
JSON 웹 토큰(JWT)은 서버 간에 정보를 쉽게 전송하기 위해 액세스 토큰을 생성하기 위한 JSON 기반 표준입니다. 인증에 JWT를 사용하면 다음과 같은 이점을 얻을 수 있습니다.
JWT는 표준 기반이며 구현 및 사용이 쉽습니다.<?php use FirebaseJWTJWT; //生成JWT $key = "secret_key"; $payload = array( "sub" => "123", "name" => "John Doe", "iat" => time(), "exp" => time() + 3600 ); $jwt = JWT::encode($payload, $key); //验证JWT try { $decoded = JWT::decode($jwt, $key, array('HS256')); print_r($decoded); } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), " "; }
ORM을 사용할 때 다음 사양을 따라야 합니다.
각 데이터베이스 테이블을 PHP 클래스로 매핑합니다.<?php // 创建PDO对象 $db = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password'); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 查询 $stmt = $db->query('SELECT * FROM users'); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); // 插入 $stmt = $db->prepare("INSERT INTO users (name, email) VALUES (:name, :email)"); $stmt->bindParam(':name', $name); $stmt->bindParam(':email', $email); $name = 'John Doe'; $email = 'john.doe@email.com'; $stmt->execute(); // 更新 $stmt = $db->prepare("UPDATE users SET name=:name WHERE id=:id"); $stmt->bindParam(':name', $name); $stmt->bindParam(':id', $id); $name = 'Jane Doe'; $id = 1; $stmt->execute(); // 删除 $stmt = $db->prepare("DELETE FROM users WHERE id=:id"); $stmt->bindParam(':id', $id); $id = 2; $stmt->execute();
내장 캐시를 사용하면 다음과 같은 이점을 얻을 수 있습니다.
사용하기 쉽고 추가 소프트웨어를 설치할 필요가 없습니다.<?php $cache = new Memcached(); $cache->addServer('localhost', 11211); // 从缓存中获取数据 if ($result = $cache->get('data')) { echo 'Data from cache: ' . $result; } else { // 从数据库中获取数据 $db = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password'); $stmt = $db->query('SELECT * FROM data'); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); $result = json_encode($rows); // 将数据保存到缓存中 $cache->set('data', $result, 3600); echo 'Data from database: ' . $result; }
외부 캐싱을 사용하면 다음과 같은 이점을 얻을 수 있습니다.
확장성이 좋고 대규모 애플리케이션에 적합합니다.<?php $redis = new Redis(); $redis->connect('localhost', 6379); // 从缓存中获取数据 if ($result = $redis->get('data')) { echo 'Data from cache: ' . $result; } else { // 从数据库中获取数据 $db = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password'); $stmt = $db->query('SELECT * FROM data'); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); $result = json_encode($rows); // 将数据保存到缓存中 $redis->set('data', $result); echo 'Data from database: ' . $result; }
Summary
이 기사에서는 PHP를 사용하여 효율적인 API를 설계하는 기술을 소개합니다. RESTful API, JWT 인증, ORM 데이터베이스 작업 및 캐싱을 사용하면 API의 성능과 보안이 크게 향상되고 API의 확장성이 향상되며 대규모 애플리케이션에 적합합니다.
위 내용은 PHP를 사용하여 효율적인 API를 설계하는 기술의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!