×ðÁú¿­Ê±

ÔõÑùÔÚThinkPHP6ÖоÙÐÐRESTful API¿ª·¢ £¿

Ëæ×Å»¥ÁªÍøµÄ¿ìËÙÉú³¤£¬Ô½À´Ô½¶àµÄÓ¦ÓÃÐèÒªÌṩapi½Ó¿Ú£¬¹©²î±ðµÄ¿Í»§¶Ë£¨web¡¢app¡¢Ð¡³ÌÐòµÈ£©Å²Óá£ÎªÁËÌá¸ß½Ó¿Ú¿ª·¢Ð§ÂʺͿÉά»¤ÐÔ£¬restful apiÖð½¥³ÉΪÁËapiÉè¼ÆµÄ±ê×¼Ö®Ò»¡£ÄÇô£¬ÔÚthinkphp6ÖÐÔõÑù¾ÙÐÐrestful api¿ª·¢ÄØ £¿½ÓÏÂÀ´ÎÒÃǾÍÀ´¼òÒªÏÈÈÝһϡ£

Ò»¡¢Ê²Ã´ÊÇRESTful API £¿

RESTful APIÊÇÒ»ÖÖAPIÉè¼ÆÀíÄÊÇRepresentational State Transfer£¨±íÊöÐÔ״̬תÒÆ£©µÄËõд£¬Ëü¹Ø×¢ÓÚ²Ù×÷×ÊÔ´µÄÌåÏÖ²ã״̬ת»»¡£RESTful APIͨ³£Ê¹ÓÃHTTPЭÒéÀ´ÊµÏÖÊý¾Ý½»»¥£¬°üÀ¨GET¡¢POST¡¢PUT¡¢DELETEµÈÇëÇó·½·¨¡£

¶þ¡¢ThinkPHP6ÖÐÖ§³ÖRESTful API¿ª·¢£º

ThinkPHP6ÊÇÒ»¿îÇáÁ¿¼¶µÄPHP¿ªÔ´¿ò¼Ü£¬¾ßÓиßЧ¡¢ÎÞа¡¢¿ÉÀ©Õ¹µÄÌص㣬ͬʱҲ֧³ÖRESTful API¿ª·¢¡£ThinkPHP6µÄRESTful API¿ª·¢»ùÓÚ·ÓÉ»úÖÆ£¬Ê¹ÓÿØÖÆÆ÷ºÍÄ£×ÓÀ´Íê³É¶ÔAPI×ÊÔ´µÄ²Ù×÷¡£

Èý¡¢ÔõÑù¾ÙÐÐRESTful API¿ª·¢ £¿

ÏÂÃæÎÒÃÇÒÔÒ»¸ö¡°Óû§ÖÎÀí¡±ÎªÀý£¬À´½â˵ÔÚThinkPHP6ÖÐÔõÑù¾ÙÐÐRESTful API¿ª·¢¡£

×¢£º±¾´ÎʾÀý½öÕë¶Ô¼òÆÓµÄÓû§ÖÎÀí£¨CRUD£©²Ù×÷£¬²»°üÀ¨ÊÚȨÈÏÖ¤µÈ¸ß¼¶¹¦Ð§ÊµÏÖ¡£

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

1¡¢½¨ÉèAPI·ÓÉ

ÔÚThinkPHP6ÖУ¬API·ÓÉÊÇÎÒÃÇʵÏÖRESTful APIµÄÒªº¦£¬¿ÉÒÔͨ¹ý×¢½â·½·¨×Ô¶¯°ó¶¨¿ØÖÆÆ÷ºÍÄ£×Ó£¬²¢½ç˵ÏìÓ¦µÄÇëÇó·½·¨¡£ÔÚ/app/route/api.phpÎļþÖмÓÈëÒÔÏ´úÂ룺

use thinkacadeRoute;

Route::group(‘api’, function(){

// ÅÌÎÊËùÓÐÓû§Áбí (GETÇëÇó)
Route::get('users', 'api/User/index');
// ƾ֤Óû§êdzÆÅÌÎÊÓû§ÐÅÏ¢ (GETÇëÇó)
Route::get('users/:nickname', 'api/User/read');
// ÐÂÔöÓû§ÐÅÏ¢ (POSTÇëÇó)
Route::post('users', 'api/User/save');
// ¸üÐÂÓû§ÐÅÏ¢ (PUTÇëÇó)
Route::put('users/:id', 'api/User/update');
// ɾ³ýÓû§ÐÅÏ¢ (DELETEÇëÇó)
Route::delete('users/:id', 'api/User/delete');

µÇ¼ºó¸´ÖÆ

});

2¡¢½¨ÉèAPI¿ØÖÆÆ÷

ÔÚ/app/controller/apiĿ¼Ï½¨ÉèUserController.phpÎļþ£¬±àдAPI×ÊÔ´¶ÔÓ¦µÄ²Ù×÷ÒªÁì¡£

declare(strict_type=1);

namespace appcontrollerpi;

use appmodelUser as UserModel;

use thinkRequest;

class UserController

{

// ÅÌÎÊËùÓÐÓû§Áбí
public function index()
{
    return UserModel::select();
}

// ƾ֤Óû§êdzÆÅÌÎÊÓû§ÐÅÏ¢
public function read($nickname)
{
    $user = UserModel::where('nickname', $nickname)->find();
    if($user) {
        return $user;
    } else {
        return '¸ÃÓû§²»±£´æ£¡';
    }
}

// ÐÂÔöÓû§ÐÅÏ¢
public function save(Request $request)
{
    $user = new UserModel;
    $user->nickname = $request->param('nickname');
    $user->email = $request->param('email');
    $user->save();
    
    return 'Óû§ÐÂÔöÀֳɣ¡';
}

// ¸üÐÂÓû§ÐÅÏ¢
public function update(Request $request, $id)
{
    $user = UserModel::find($id);
    if($user) {
        $user->nickname = $request->param('nickname');
        $user->email = $request->param('email');
        $user->save();
        
        return 'Óû§¸üÐÂÀֳɣ¡';
    } else {
        return '¸ÃÓû§²»±£´æ£¡';
    }
}

// ɾ³ýÓû§ÐÅÏ¢
public function delete($id)
{
    $user = UserModel::find($id);
    if($user) {
        $user->delete();
        
        return 'Óû§É¾³ýÀֳɣ¡';
    } else {
        return '¸ÃÓû§²»±£´æ£¡';
    }
}

µÇ¼ºó¸´ÖÆ

}

3¡¢½¨ÉèAPIÄ£×Ó

ÔÚ/app/modelĿ¼Ï½¨ÉèUser.phpÎļþ£¬ÊµÏÖ¶ÔÓû§±íµÄCURD²Ù×÷¡£

declare(strict_types=1);

namespace appmodel;

use thinkModel;

class User extends Model

{

// Êý¾Ý±íÃû
protected $table = 'user';

// Ö÷¼üÃû
protected $pk = 'id';

// ½ç˵ʱ¼ä´Á×Ö¶ÎÃû
protected $createTime = 'create_time';
protected $updateTime = 'update_time';

// ×Ô¶¯Ê±¼ä´Á
protected $autoWriteTimestamp = 'datetime';

µÇ¼ºó¸´ÖÆ

}

4¡¢²âÊÔAPI½Ó¿Ú

Æô¶¯ThinkPHP6Ó¦Óã¬ÔÚPostmanµÈÇ°¶Ë¹¤¾ßÖУ¬Í¨¹ý¶ÔAPI½Ó¿ÚµÄ²âÊÔÀ´ÑéÖ¤¹¦Ð§µÄ׼ȷÐÔºÍÍêÕûÐÔ¡£

ÒÔÉϾÍÊÇÔÚThinkPHP6ÖоÙÐÐRESTful API¿ª·¢µÄÖ÷ÒªÄÚÈÝ¡£Í¨¹ýÕâÖÖ·½·¨£¬ÎÒÃÇ¿ÉÒÔ´ó´ó¼ò»¯API½Ó¿ÚµÄ¿ª·¢Á÷³Ì£¬Ìá¸ß¿ª·¢Ð§ÂʺʹúÂëά»¤ÐÔ¡£²»¹ý£¬ÐèҪעÖصÄÊÇ£¬RESTful APIµÄÉè¼ÆÒªÒÔÊý¾ÝΪ½¹µã£¬½Ó¿ÚŲÓÃÓ¦ÇкÏHTTPЭÒ飬°ü¹Üÿ´ÎÇëÇóµÄЧ¹ûÊÇ¿ÉÔ¤ÆںͿɿ¿µÄ¡£

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

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

Ïà¹ØÐÂÎÅ

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

18523999891

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

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

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