ÉèÖÃLinuxϵͳÒÔÖ§³ÖRESTful API¿ª·¢
ÉèÖÃlinuxϵͳÒÔÖ§³Örestful api¿ª·¢
СÐò£º
REST£¨Representational State Transfer£©ÊÇÒ»ÖÖ»ùÓÚHTTPÐÒéµÄ¼Ü¹¹Æø¸Å£¬ÆÕ±éÓ¦ÓÃÓÚWebЧÀ͵Ŀª·¢ÖС£ÔÚLinuxϵͳÉÏ£¬ÎÒÃÇ¿ÉÒÔͨ¹ýһЩ³£ÓõŤ¾ßºÍ¿ò¼ÜÀ´ÊµÏÖRESTful APIµÄ¿ª·¢ºÍ°²ÅÅ¡£±¾ÎĽ«ÏÈÈÝÔõÑùÉèÖÃlinuxϵͳÒÔÖ§³Örestful api¿ª·¢£¬²¢¸½ÉÏ´úÂëʾÀý¡£
Ò»¡¢×°ÖÃApacheЧÀÍÆ÷
ApacheÊÇÒ»¿îÖøÃûµÄWebЧÀÍÆ÷Èí¼þ£¬ÎÒÃÇ¿ÉÒÔͨ¹ýÒÔÏÂÏÂÁîÔÚLinuxϵͳÉÏ×°ÖÃApache£º
sudo apt-get install apache2
µÇ¼ºó¸´ÖÆ
×°ÖÃÍê³Éºó£¬»á¼ûµ±ÌïÖ÷»ú£¨http://localhost£©Ó¦¸ÃÄܹ»¿´µ½ApacheĬÈϵĽӴýÒ³Ãæ¡£
¶þ¡¢×°ÖÃMySQLÊý¾Ý¿â
MySQLÊÇÒ»ÖÖ³£ÓõĹØϵÐÍÊý¾Ý¿â£¬ÎÒÃÇ¿ÉÒÔͨ¹ýÒÔÏÂÏÂÁîÔÚLinuxϵͳÉÏ×°ÖÃMySQL£º
sudo apt-get install mysql-server
µÇ¼ºó¸´ÖÆ
×°ÖÃÍê³Éºó£¬Í¨¹ýÒÔÏÂÏÂÁîÆô¶¯MySQLЧÀÍ£º
sudo service mysql start
µÇ¼ºó¸´ÖÆ
½ÓÏÂÀ´£¬ÎÒÃÇ»¹ÐèҪΪMySQLÉèÖÃrootÓû§µÄÃÜÂ룺
sudo mysql_secure_installation
µÇ¼ºó¸´ÖÆ
Èý¡¢×°ÖÃPHPºÍPHPÄ£¿é
PHPÊÇÒ»ÖÖÓÃÓÚ¹¹½¨¶¯Ì¬ÍøÒ³µÄ¾ç±¾ÓïÑÔ£¬ÎÒÃÇ¿ÉÒÔͨ¹ýÒÔÏÂÏÂÁîÔÚLinuxϵͳÉÏ×°ÖÃPHP£º
sudo apt-get install php libapache2-mod-php php-mysql
µÇ¼ºó¸´ÖÆ
×°ÖÃÍê³Éºó£¬ÖØÆôApacheЧÀÍÒÔʹPHPÄ£¿éÉúЧ£º
sudo service apache2 restart
µÇ¼ºó¸´ÖÆ µÇ¼ºó¸´ÖÆ
ËÄ¡¢½¨ÉèÊý¾Ý¿âºÍ±í
ÎÒÃÇÐèÒª½¨ÉèÒ»¸öÊý¾Ý¿âÀ´´æ´¢RESTful APIËùÐèµÄÊý¾Ý¡£Í¨¹ýÒÔÏÂÏÂÁîµÇ¼MySQLÊý¾Ý¿â£º
mysql -u root -p
µÇ¼ºó¸´ÖÆ
È»ºóÊäÈërootÓû§µÄÃÜÂë¡£½ÓÏÂÀ´£¬½¨ÉèÊý¾Ý¿âºÍ±í£º
CREATE DATABASE api; USE api; CREATE TABLE users( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL );
µÇ¼ºó¸´ÖÆ
Îå¡¢±àдRESTful API´úÂë
ÔÚLinuxϵͳÉÏ£¬ÎÒÃÇ¿ÉÒÔʹÓÃPHPÀ´±àдRESTful APIµÄ´úÂë¡£½¨ÉèÒ»¸öÃûΪapi.phpµÄÎļþ£¬²¢ÔÚÆäÖÐÌí¼ÓÒÔÏ´úÂ룺
<?php header("Content-Type: application/json; charset=UTF-8"); // ÅþÁ¬µ½Êý¾Ý¿â $conn = new mysqli("localhost", "root", "your_password", "api"); // ¼ì²éÅþÁ¬ÊÇ·ñÀÖ³É if ($conn->connect_error) { die("ÅþÁ¬Êý¾Ý¿âʧ°Ü£º" . $conn->connect_error); } // ´¦Öóͷ£GETÇëÇó if ($_SERVER["REQUEST_METHOD"] === "GET") { $result = $conn->query("SELECT * FROM users"); $rows = array(); while ($row = $result->fetch_assoc()) { $rows[] = $row; } echo json_encode($rows); } // ´¦Öóͷ£POSTÇëÇó if ($_SERVER["REQUEST_METHOD"] === "POST") { $name = $_POST["name"]; $email = $_POST["email"]; $result = $conn->query("INSERT INTO users (name, email) VALUES ('$name', '$email')"); if ($result === TRUE) { echo json_encode(array("message" => "½¨ÉèÓû§ÀÖ³É")); } else { echo json_encode(array("message" => "½¨ÉèÓû§Ê§°Ü£º" . $conn->error)); } } $conn->close(); ?>
µÇ¼ºó¸´ÖÆ
Çëƾ֤ÏÖÕæÏàÐν«Êý¾Ý¿âÃÜÂ루your_password£©¸ü¸ÄΪÄã×Ô¼ºÉèÖõÄÃÜÂë¡£
Áù¡¢ÉèÖÃApacheÒÔÖ§³ÖRESTful API
Ç뽫api.phpÎļþ°²ÅÅÔÚApacheµÄWeb¸ùĿ¼Ï£¨Ä¬ÒÔΪ/var/www/html£©¡£
½ÓÏÂÀ´£¬ÎÒÃÇÐèÒªÔÚApacheµÄÉèÖÃÎļþÖÐÆôÓÃÄ£¿éRewriteºÍAllowOverride¡£Ê¹ÓÃÒÔÏÂÏÂÁî·¿ªÉèÖÃÎļþ£º
sudo nano /etc/apache2/apache2.conf
µÇ¼ºó¸´ÖÆ
ÕÒµ½ÒÔÏÂÁ½ÐУ¬²¢È·±£È¥µô×¢ÊÍ£¨É¾³ýÐÐÊ׵ġ°#¡±·ûºÅ£©£º
LoadModule rewrite_module lib/apache2/modules/mod_rewrite.so AllowOverride All
µÇ¼ºó¸´ÖÆ
ÉúÑIJ¢¹Ø±ÕÉèÖÃÎļþ¡£
×îºó£¬ÖØÆôApacheЧÀÍ£º
sudo service apache2 restart
µÇ¼ºó¸´ÖÆ µÇ¼ºó¸´ÖÆ
Æß¡¢²âÊÔRESTful API
ÏÖÔÚ£¬ÎÒÃÇ¿ÉÒÔʹÓÃcurlÏÂÁî»òÆäËûHTTP¹¤¾ßÀ´²âÊÔRESTful API¡£ÒÔÏÂÊÇһЩ³£¼ûµÄ²âÊÔÏÂÁ
# »ñÈ¡Óû§Áбí curl http://localhost/api.php # ½¨ÉèÓû§ curl --data "name=John&email=john@example.com" http://localhost/api.php
µÇ¼ºó¸´ÖÆ
ƾ֤ÏÖÕæÏàÐν«localhost¸ü¸ÄΪÄãµÄЧÀÍÆ÷ÓòÃû»òIPµØµã¡£
½áÂÛ£º
ͨ¹ýÉèÖÃLinuxϵͳ£¬ÎÒÃÇ¿ÉÒÔÇáËɵØÖ§³ÖRESTful APIµÄ¿ª·¢ºÍ°²ÅÅ¡£Ê¹ÓÃApache×÷ΪWebЧÀÍÆ÷£¬MySQL×÷ΪÊý¾Ý¿â£¬PHP×÷Ϊºó¶Ë¾ç±¾ÓïÑÔ£¬ÎÒÃÇ¿ÉÒÔ¸üÀû±ãµØ¹¹½¨ºÍά»¤RESTful API¡£Ï£Íû±¾ÎĶÔÄúÓÐËù×ÊÖú£¬×£ÄúÔÚLinuxϵͳÉÏ¿ª·¢³öÓÅÒìµÄRESTful API£¡
ÒÔÉϾÍÊÇÉèÖÃLinuxϵͳÒÔÖ§³ÖRESTful API¿ª·¢µÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡