×ðÁú¿­Ê±¹ÙÍøµÇ¼

ÔõÑùÔÚ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
ÍøÕ¾µØͼ