laravel Ôõôд½Ó¿Ú
ÔÚweb¿ª·¢ÖУ¬½Ó¿ÚÊDz»¿É×èÖ¹µÄÒ»¸ö²¿·Ö¡£laravel¿ò¼ÜÌṩÁËÒ»¸ö¼òÆÓ¶øÇ¿Ê¢µÄÒªÁìÀ´±àдºÍÖÎÀíapi¡£ÔÚ±¾ÆªÎÄÕÂÖУ¬ÎÒÃǽ«ÉîÈë̽ÌÖlaravel¿ò¼ÜÔõÑù±àд½Ó¿Ú¡£
ʲôÊÇAPI£¿
APIÊÇÖ¸¡°Ó¦ÓóÌÐò±à³Ì½Ó¿Ú¡±£¬ËüÊÇÓ¦ÓóÌÐòÓëÆäËûÓ¦ÓóÌÐòÖ®¼ä¾ÙÐÐͨѶµÄÒ»Öֹ淶¡£API¿ÉÒÔÈÃÎÒÃǹ¹½¨¿çƽ̨£¬¿çÓïÑԺͿç×éÖ¯µÄÓ¦ÓóÌÐò¡£
ÔÚWeb¿ª·¢ÖУ¬APIͨ³£ÓÃÓÚÔÊÐíWebÒ³ÃæºÍWebÓ¦ÓóÌÐò»á¼ûЧÀÍÆ÷ÉϵÄÊý¾Ý£¬»òÕßÈÃWebÓ¦ÓóÌÐòÓëµÚÈý·½Ð§À;ÙÐÐͨѶ¡£Òò´Ë£¬¿ª·¢Ö°Ô±ÐèÒªÒ»ÖÖÎÞа¶ø¿É¿¿µÄÒªÁìÀ´±àдAPI¡£
LaravelÔõÑùÖ§³ÖAPI±àд?
LaravelÌṩÁËÒ»ÖÖ¼òÆÓ¶øÇ¿Ê¢µÄÒªÁìÀ´±àдAPI¡£ËüÔÊÐíÄú±àдRESTful API£¬ÕâÊÇÒ»ÖÖʹÓÃHTTPÇëÇó¶ÔWeb×ÊÔ´¾ÙÐлá¼ûµÄ³£ÓÃÒªÁì¡£
RESTful APIͨ³£ÊÇ»ùÓÚHTTPÐÒéµÄ£¬¿ÉÒÔͨ¹ýHTTPÇëÇó£¨GET£¬POST£¬PUT£¬DELETE£©»á¼û×ÊÔ´¡£ÀýÈ磬ÎÒÃÇ¿ÉÒÔʹÓÃGETÇëÇó»á¼ûÊý¾Ý¿âÖеÄÊý¾Ý£¬Ê¹ÓÃPOSTÇëÇó½¨ÉèÒ»¸öеÄ×ÊÔ´£¬Ê¹ÓÃPUTÇëÇó¸üÐÂÏÖÓÐ×ÊÔ´£¬Ê¹ÓÃDELETEÇëÇóɾ³ý×ÊÔ´¡£
ÔÚLaravelÖУ¬ÎÒÃÇ¿ÉÒÔͨ¹ý·ÓÉÀ´½ç˵APIµÄÇëÇóºÍÏìÓ¦¡£LaravelµÄ·ÓÉϵͳºÜÊÇÎÞа£¬¿ÉÒÔÉÁ¿ª·¢Ö°Ô±ÇáËɵؽç˵API·ÓÉ¡£
½ç˵Laravel API·ÓÉ
Ê×ÏÈ£¬ÎÒÃÇÐèÒªÔÚLaravelÓ¦ÓóÌÐòÖнç˵·ÓÉ¡£Â·Óɽç˵ÁËAPI×ÊÔ´µÄURIºÍÓ¦¸ÃÖ´ÐеIJÙ×÷¡£
ÎÒÃÇ¿ÉÒÔͨ¹ýÒÔÏÂÒªÁì½ç˵һ¸öAPI·ÓÉ£º
Route::get('/api/users', 'UserController@index');
µÇ¼ºó¸´ÖÆ
ÉÏÊö´úÂë½ç˵ÁËÒ»¸ö·ÓÉ£¬¸Ã·Óɽ«Ê¹ÓÃGETÇëÇó»á¼ûURI /api/users£¬²¢½«Ö´ÐÐUserControllerÀàÖеÄindexÒªÁì¡£
ÈôÊÇÎÒÃÇÏë½ç˵һ¸ö¿ÉÒÔʹÓÃPOSTÇëÇó¾ÙÐн¨ÉèµÄ·ÓÉ£¬ÎÒÃÇ¿ÉÒÔÕâÑù×ö£º
Route::post('/api/users', 'UserController@store');
µÇ¼ºó¸´ÖÆ
ÉÏÊö´úÂë½ç˵ÁËÒ»¸ö·ÓÉ£¬¸Ã·Óɽ«Ê¹ÓÃPOSTÇëÇó»á¼ûURI /api/users£¬²¢½«Ö´ÐÐUserControllerÀàÖеÄstoreÒªÁì¡£
ͬÑù£¬ÎÒÃÇ¿ÉÒÔʹÓÃPUTºÍDELETEÇëÇóÀ´¸üкÍɾ³ýÊý¾Ý£º
Route::put('/api/users/{id}', 'UserController@update'); Route::delete('/api/users/{id}', 'UserController@destroy');
µÇ¼ºó¸´ÖÆ
ÉÏÊö´úÂë»®·Ö½ç˵ÁËʹÓÃPUTºÍDELETEÇëÇó¸üкÍɾ³ýµ¥¸öÓû§µÄ·ÓÉ¡£
±àдLaravel¿ØÖÆÆ÷
ÔÚLaravelÖУ¬ÎÒÃÇ¿ÉÒÔʹÓÿØÖÆÆ÷À´´¦ÀíAPI·ÓÉ¡£¿ØÖÆÆ÷ÊÇÒ»¸öPHPÀ࣬Ëü°üÀ¨ÎÒÃǽç˵µÄ·ÓɲÙ×÷¡£
ÀýÈ磬ÈôÊÇÎÒÃÇÒª±àдһ¸öÓÃÓÚ´¦ÀíAPIÓû§Â·ÓɵĿØÖÆÆ÷£¬ÎÒÃÇ¿ÉÒÔ½¨ÉèÒ»¸öÃûΪUserControllerµÄ¿ØÖÆÆ÷Àࣺ
namespace AppHttpControllers; use AppUser; class UserController extends Controller { public function index() { $users = User::all(); return response()->json($users); } public function store(Request $request) { $user = new User; $user->name = $request->name; $user->email = $request->email; $user->password = bcrypt($request->password); $user->save(); return response()->json($user); } public function update(Request $request, $id) { $user = User::find($id); $user->name = $request->name; $user->email = $request->email; $user->password = bcrypt($request->password); $user->save(); return response()->json($user); } public function destroy($id) { $user = User::find($id); $user->delete(); return response()->json(['message' => 'User deleted']); } }
µÇ¼ºó¸´ÖÆ
ÉÏÊö´úÂë½ç˵ÁËÒ»¸öÃûΪUserControllerµÄ¿ØÖÆÆ÷£¬Ëü°üÀ¨ÁË´¦ÀíGET¡¢POST¡¢PUTºÍDELETEÇëÇóµÄ²î±ðÒªÁì¡£ÀýÈ磬index()ÒªÁ콫»ñÈ¡ËùÓÐÓû§£¬store()ÒªÁ콫½¨ÉèÐÂÓû§£¬update()ÒªÁ콫¸üÐÂÏÖÓÐÓû§£¬destroy()ÒªÁ콫ɾ³ýÏÖÓÐÓû§¡£
ÉèÖ÷Óɱ£»¤
ÓÉÓÚAPIͨ³£Ö»¿ª·Å¸øÊÚȨµÄÓû§£¬Òò´ËÎÒÃÇÐèҪȷ±£API·ÓÉÊܵ½±£»¤¡£Îª´Ë£¬ÔÚLaravelÖУ¬ÎÒÃÇ¿ÉÒÔʹÓÃÖÐÐļþÀ´±£»¤ÎÒÃǵÄ·ÓÉ¡£
ÀýÈ磬ÎÒÃÇ¿ÉÒÔͨ¹ýÒÔÏÂÒªÁìÀ´±£»¤API·ÓÉ£º
Route::group(['middleware' => 'auth:api'], function () { Route::get('/api/users', 'UserController@index'); Route::post('/api/users', 'UserController@store'); Route::put('/api/users/{id}', 'UserController@update'); Route::delete('/api/users/{id}', 'UserController@destroy'); });
µÇ¼ºó¸´ÖÆ
ÉÏÊö´úÂ뽫½¨ÉèÒ»¸ö»ùÓÚauth£ºapiÖÐÐļþµÄ·ÓÉ×飬ÕâÒâζ×ÅÖ»ÓÐÔÚͨ¹ýRESTful APIÑéÖ¤ºó£¨Í¨¹ýOAuth£¬JWTµÈ£©²Å»ª»á¼ûÕâЩ·ÓÉ¡£
·µ»ØJSONÏìÓ¦
LaravelÌṩÁËÒ»ÖÖ¼òÆÓ¶øÇ¿Ê¢µÄÒªÁìÀ´·ºÆðJSONÏìÓ¦¡£Õâͨ³£ÊÇAPI¿ª·¢µÄĬÈÏÏìÓ¦ÀàÐÍ¡£
ÀýÈ磬ÎÒÃÇ¿ÉÒÔÔÚUserControllerÀàÖÐʹÓÃresponse()->json()ÒªÁìÀ´·µ»ØJSONÃûÌõÄÊý¾Ý£º
public function index() { $users = User::all(); return response()->json($users); }
µÇ¼ºó¸´ÖÆ
ÒÔÉÏ´úÂë»á½«ËùÓÐÓû§µÄÏêϸÐÅÏ¢ÒÔJSONÃûÌ÷µ»Ø¡£
ͨ¹ý²âÊÔ°ü¹ÜAPIµÄ¿ÉÓÃÐÔºÍÎȹÌÐÔ
×îºó£¬ÎÒÃÇÐèҪȷ±£APIµÄ¿ÉÓÃÐÔºÍÎȹÌÐÔ¡£Õâ¾ÍÐèÒª¾ÙÐÐһϵÁвâÊÔ£¬°üÀ¨µ¥Î»²âÊÔ£¬¹¦Ð§²âÊÔ£¬¼¯³É²âÊԺͽӿڲâÊÔ¡£
LaravelµÄ¿ò¼ÜÌṩÁËһϵÁÐÇ¿Ê¢µÄ²âÊÔ¹¤¾ß£¬¿ÉÒÔ×ÊÖúÎÒÃǾÙÐÐÓÐÓõIJâÊÔ£¬°ü¹ÜAPIµÄ¿ÉÓÃÐÔºÍÎȹÌÐÔ¡£
½áÂÛ
ͨ¹ýLaravel¿ò¼ÜÀ´±àдAPIÊǺÜÊǼòÆÓ¶øÇ¿Ê¢µÄ¡£LaravelÌṩÁËһЩǿʢµÄ¹¤¾ßÀ´´¦ÀíAPI·ÓɺͿØÖÆÆ÷£¬×ÊÖúÎÒÃÇ¿ìËÙ¹¹½¨Ç¿Ê¢µÄAPI¡£²¢ÇÒ£¬Í¨¹ýʹÓÃLaravelÌṩµÄ²âÊÔ¹¤¾ß£¬ÎÒÃÇ¿ÉÒÔÈ·±£APIµÄ¿ÉÓÃÐÔºÍÎȹÌÐÔ¡£
ÎÞÂÛÄúÊÇÖØÐÂ×îÏȱàдAPI£¬ÕÕ¾ÉÐèҪˢкÍÓÅ»¯ÏÖÓÐAPI£¬Laravel¶¼ÊÇÒ»¸ö¿ò¼Ü£¬ÖµµÃʵÑé¡£
ÒÔÉϾÍÊÇlaravel Ôõôд½Ó¿ÚµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡