×ðÁú¿­Ê±

ÔõÑùʹÓÃThinkPHP6¾ÙÐÐRESTful API²âÊÔ£¿

Ëæ×ÅÒƶ¯»¥ÁªÍøµÄ¿ìËÙÉú³¤ºÍÔÆÅÌËãµÄÆÕ¼°  £¬webЧÀÍ£¨ÌØÊâÊÇrestful api£©ÒѳÉΪÏÖÔÚ¿ª·¢ÁìÓòÖÐ×îÖ÷ÒªµÄÒ»²¿·Ö¡£ÄÇôÔõÑùʹÓÃthinkphp6¾ÙÐÐrestful api²âÊÔÄØ£¿±¾ÎĽ«ÏêϸÏÈÈÝthinkphp6ÖеÄrestful api²âÊÔÒªÁìÒÔ¼°½¨ÒéµÄ¹¤¾ßºÍʵ¼ù¡£

ÇéÐδ

Ê×ÏÈ  £¬ÐèҪװÖÃThinkPHP6ÇéÐÎ  £¬¿ÉÒÔʹÓùÙÍøÌṩµÄcomposer¾ÙÐÐ×°Öá£ÔÚÏÂÁîÐд°¿ÚÖÐÊäÈëÒÔÏÂÏÂÁî¼´¿É£º

composer create-project topthink/think tp6

µÇ¼ºó¸´ÖÆ

½Ó×Å  £¬ÔÚÏîÄ¿¸ùĿ¼Ï½¨Éè.envÎļþ  £¬ÄÚÀïÐèÒª¼ÓÈëÊý¾Ý¿âÉèÖãº

DB_HOST = localhost
DB_NAME = test
DB_USER = root
DB_PASSWORD =

µÇ¼ºó¸´ÖÆ

·Óɽç˵

ÔÚThinkPHP6ÖÐ  £¬ÎÒÃÇ¿ÉÒÔʹÓÃRoute::ruleÒªÁìÀ´½ç˵·ÓÉ  £¬ÀýÈ磺

Route::rule('users', 'apppicontrollerUser');

µÇ¼ºó¸´ÖÆ

ÆäÖÐ  £¬usersÊÇÎÒÃÇ×Ô½ç˵µÄURI·¾¶  £¬apppicontrollerUserÔòÊǶÔÓ¦µÄ¿ØÖÆÆ÷¡£

Á¬Ã¦Ñ§Ï°¡°PHPÃâ·ÑѧϰÌõ¼Ç£¨ÉîÈ룩¡±£»

±àд¿ØÖÆÆ÷

ÔÚThinkPHP6ÖÐ  £¬ÎÒÃÇ¿ÉÒÔͨ¹ý¿ØÖÆÆ÷£¨Controller£©À´´¦Öóͷ£RESTful APIÇëÇó¡£ÒÔÏÂÊÇÒ»¸ö¼òÆӵĿØÖÆÆ÷´úÂ룺

<?php

namespace apppicontroller;

use thinkacadeDb;

class User
{
    public function index()
    {
        return json(Db::table('users')->select());
    }

    public function read($id)
    {
        return json(Db::table('users')->where('id', $id)->find());
    }

    public function save()
    {
        $data = input();
        Db::table('users')->insert($data);
        return json(['msg' => 'created']);
    }

    public function update($id)
    {
        $data = input();
        Db::table('users')->where('id', $id)->update($data);
        return json(['msg' => 'updated']);
    }

    public function delete($id)
    {
        Db::table('users')->where('id', $id)->delete();
        return json(['msg' => 'deleted']);
    }
}

µÇ¼ºó¸´ÖÆ

ÔÚÕâ¸ö¿ØÖÆÆ÷ÖÐ  £¬ÎÒÃǽç˵ÁËindex¡¢read¡¢save¡¢updateºÍdeleteÎå¸öÒªÁì  £¬»®·Ö¶ÔÓ¦RESTful APIÖеÄÎå¸öÒªÁ죺GET¡¢GET¡¢POST¡¢PUTºÍDELETE¡£

²âÊÔ¹¤¾ß

ÔÚ¾ÙÐÐRESTful API²âÊÔʱ  £¬ÎÒÃÇÐèҪʹÓÃһЩ¹¤¾ßÀ´Ä£Äâ¶ÔAPIµÄÇëÇóºÍÏìÓ¦  £¬ÒÔÏÂÊÇÆäÖм¸¿î³£¼ûµÄ²âÊÔ¹¤¾ß¡£

4.1 Postman

PostmanÊÇÒ»¿î¹¦Ð§Ç¿Ê¢µÄAPI¿ª·¢²âÊÔ¹¤¾ß  £¬Ö§³Ö¶àÖÖHTTPÇëÇóÀàÐÍ  £¬Àû±ãÒ×Óà  £¬¿ÉÇáËɵØÄ£Äâ·¢ËÍHTTPÇëÇó²¢Éó²éÏìÓ¦¡£

4.2 cURL

cURL ÊÇÒ»¸ö³£ÓõÄÏÂÁîÐй¤¾ß  £¬ÓÃÓÚ´«ÊäÊý¾Ý  £¬Ö§³Ö¶àÖÖЭÒé  £¬°üÀ¨HTTP¡¢FTP¡¢SMTPµÈ¡£Ê¹ÓÃcURL¿ÉÒÔ¾ÙÐÐÖÖÖÖHTTPÇëÇó²Ù×÷¡£

4.3 Advanced REST Client

Advanced REST ClientÊÇÒ»¿îÀ©Õ¹ÐÔÇ¿µÄä¯ÀÀÆ÷²å¼þ  £¬Í¨¹ý¾«Á·µÄUIºÍÐí¶à±ãµ±µÄ¹¦Ð§  £¬ÊµÏÖÁËÇáËɵÄRESTful API²âÊÔ  £¬Î´À´Éú³¤Ç±Á¦ºÜ´ó¡£

ʵ¼ù°¸Àý

ÔÚÏÖʵÏîÄ¿ÖÐ  £¬RESTful API²âÊÔÐèÒªÑÏ¿á×ñÊؽӿÚÎĵµ  £¬ºÏÀíʹÓÃÖÖÖÖHTTPÇëÇóÀàÐͺÍÏìÓ¦Âë  £¬ÒÔÏÂÊÇÒ»¸ö¼òÆӵݸÀý£º

5.1 HTTP GETÇëÇó

URI£ºhttp://localhost/api/users

Method£ºGET

ÏìӦ״̬Â룺200

ÏìÓ¦Êý¾ÝÃûÌãºjson

[
    {
        "id": 1,
        "name": "Tom",
        "email": "tom@example.com"
    },
    {
        "id": 2,
        "name": "Jerry",
        "email": "jerry@example.com"
    }
]

µÇ¼ºó¸´ÖÆ

5.2 HTTP POSTÇëÇó

URI£ºhttp://localhost/api/users

Method£ºPOST

ÇëÇóÊý¾ÝÃûÌãºform-data

ÇëÇóÊý¾Ý²ÎÊý£º

²ÎÊýÃû ²ÎÊýÖµ
name Mary
email mary@example.com

ÏìӦ״̬Â룺201

ÏìÓ¦Êý¾ÝÃûÌãºjson

{
    "msg": "created"
}

µÇ¼ºó¸´ÖÆ

5.3 HTTP PUTÇëÇó

URI£ºhttp://localhost/api/users/3

Method£ºPUT

ÇëÇóÊý¾ÝÃûÌãºx-www-form-urlencoded

ÇëÇóÊý¾Ý²ÎÊý£º

²ÎÊýÃû ²ÎÊýÖµ
name John
email john@example.com

ÏìӦ״̬Â룺200

ÏìÓ¦Êý¾ÝÃûÌãºjson

{
    "msg": "updated"
}

µÇ¼ºó¸´ÖÆ

5.4 HTTP DELETEÇëÇó

URI£ºhttp://localhost/api/users/3

Method£ºDELETE

ÏìӦ״̬Â룺200

ÏìÓ¦Êý¾ÝÃûÌãºjson

{
    "msg": "deleted"
}

µÇ¼ºó¸´ÖÆ

×ܽá

ÔÚ±¾ÎÄÖÐ  £¬ÎÒÃÇÏÈÈÝÁËÔõÑùʹÓÃThinkPHP6¾ÙÐÐRESTful API²âÊÔ¡£Ê×ÏÈ  £¬ÎÒÃÇÐèÒª´î½¨ÇéÐΡ¢½ç˵·Óɺͱàд¿ØÖÆÆ÷¡£È»ºó  £¬ÎÒÃÇÍƼöÁ˼¸¿î³£¼ûµÄ²âÊÔ¹¤¾ß  £¬²¢Í¨¹ýÒ»¸öʵ¼ù°¸Àý  £¬Õ¹Ê¾ÁËÔõÑù¾ÙÐÐHTTP GET¡¢POST¡¢PUTºÍDELETEÇëÇó  £¬ÒÔ¼°ÏìÓ¦µÄÏìӦ״̬ÂëºÍÊý¾ÝÃûÌá£Ï£Íû¶ÁÕß¿ÉÒÔÉîÈëѧϰThinkPHP6  £¬ÔËÓúÃRESTful API²âÊÔ  £¬Ìá¸ß¿ª·¢Ð§ÂÊÒÔ¼°ÎȹÌÐÔ¡£

ÒÔÉϾÍÊÇÔõÑùʹÓÃThinkPHP6¾ÙÐÐRESTful API²âÊÔ£¿µÄÏêϸÄÚÈÝ  £¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí  £¬°æȨÕùÒéÓë±¾Õ¾ÎÞ¹Ø  £¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í×ðÁú¿­Ê±ÂËÓÍ»úÍø¹Ù·½Ì¬¶È  £¬Çë¶ÁÕß½ö×ö²Î¿¼¡£±¾ÎĽӴýתÔØ  £¬×ªÔØÇë˵Ã÷À´ÓÉ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢  £¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢  £¬ÇëÄúÁ¬Ã¦ÁªÏµ×ðÁú¿­Ê±ÊµÊ±ÐÞÕý»òɾ³ý¡£

Ïà¹ØÐÂÎÅ

ÁªÏµ×ðÁú¿­Ê±

18523999891

¿É΢ÐÅÔÚÏß×Éѯ

ÊÂÇéʱ¼ä£ºÖÜÒ»ÖÁÖÜÎå  £¬9:30-18:30  £¬½ÚãåÈÕÐÝÏ¢

QR code
¡¾ÍøÕ¾µØͼ¡¿¡¾sitemap¡¿