laravel Ôõô»á¼û½Ó¿Ú
laravel ÊÇÒ»¸ö»ùÓÚ php µÄ web Ó¦Óÿª·¢¿ò¼Ü£¬ËüÌṩÁËһϵÁй¤¾ßºÍÊÖÒÕÀ´¹¹½¨¸ßЧ¡¢¿ÉÀ©Õ¹µÄ web Ó¦ÓóÌÐò¡£ÔÚ laravel ÖУ¬»á¼û½Ó¿ÚÊǷǾ³£¼ûµÄÐèÇó£¬ÓÉÓÚËü¿ÉÒÔÈÃÎÒÃÇÇáËɵØʵÏÖÓëÆäËûϵͳµÄ¼¯³ÉºÍ½»»¥¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃǽ«ÏÈÈÝ laravel ÖÐÔõÑù»á¼û½Ó¿Ú¡£
Ò»¡¢Ê²Ã´ÊǽӿÚ
ÔÚÅÌËã»ú¿ÆѧÖУ¬½Ó¿ÚÊÇÒ»ÖÖ³ÌÐòÉè¼ÆÔ¼¶¨£¬Ëü½ç˵ÁËÁ½¸ö²î±ðµÄÈí¼þ×é¼þÖ®¼äͨѶµÄ·½·¨¡£½Ó¿Ú½ç˵ÁËÒ»×éÒªÁì»ò²Ù×÷£¬ÓÃÓÚÖ¸¶¨Ï໥×÷ÓõÄÁ½¸ö×é¼þÖ®¼äµÄÌõÔ¼¡£ÔÚ Web Ó¦ÓóÌÐòÖУ¬½Ó¿Úͨ³£ÓÃÓÚÁ½¸öϵͳ֮¼ä¾ÙÐÐÊý¾Ý½»Á÷¡£
¶þ¡¢Laravel ÖеĽӿÚ
Laravel µÄ½¹µã¹¦Ð§Ö®Ò»ÊÇËüÌṩÁËÒ»¸öÇ¿Ê¢µÄ·ÓÉϵͳ£¬¿ÉÒÔÓÃÀ´½ç˵ Web Ó¦ÓóÌÐòÖеÄ·ÓÉ¡£Â·ÓÉÊÇÖ¸´¦Àí¿Í»§¶ËÇëÇóµÄ³ÌÐò´úÂë¡£ÔÚ Laravel ÖУ¬ÎÒÃÇ¿ÉÒÔʹÓ÷ÓÉÀ´½ç˵ RESTful API¡£
RESTful API ÊÇÒ»ÖÖ Web ЧÀͼܹ¹£¬ÓÃÓÚ½¨Éè Web Ó¦ÓóÌÐò½Ó¿Ú¡£REST Ö¸µÄÊÇ¡°Representational State Transfer¡±£¬ËüÊÇÒ»ÖÖʹÓà HTTP ÐÒé¾ÙÐÐͨѶµÄ Web API Éè¼ÆÆøÑæÆøÑæ¡£ÕâÖÖÉè¼ÆÆøÑæÆøÑæʹµÃ Web API Äܹ»Í¨¹ýͳһµÄ·½·¨½ÓÊÜÀ´×Ô²î±ðϵͳµÄÇëÇóºÍÏìÓ¦¡£
Laravel µÄ·ÓÉϵͳ֧³Ö¶àÖÖ HTTP ÇëÇóÒªÁ죬°üÀ¨ GET¡¢POST¡¢PUT¡¢PATCH ºÍ DELETE¡£ÎÒÃÇ¿ÉÒÔÔÚ·Óɽç˵ÖÐÖ¸¶¨ËùÐèµÄÇëÇóÒªÁìÒÔ¼°ÏìÓ¦µÄ´¦Àí³ÌÐò»ò¿ØÖÆÆ÷¡£
ÏÂÃæÊÇÒ»¸ö¼òÆÓµÄʾÀý£¬Õ¹Ê¾ÁËÔõÑù½ç˵һ¸ö·µ»Ø JSON ÃûÌÃÊý¾ÝµÄ½Ó¿Ú£º
Route::get('/api/products', function () { $products = [ ['name' => 'iPhone', 'price' => 699], ['name' => 'iPad', 'price' => 799], ['name' => 'iMac', 'price' => 1299], ]; return response()->json($products); });
µÇ¼ºó¸´ÖÆ
ÔÚÉÏÃæµÄʾÀýÖУ¬ÎÒÃǽç˵ÁËÒ»¸ö GET ÇëÇóÒªÁìµÄ·ÓÉ£¬ÓÃÓÚ»á¼û /api/products ·¾¶¡£Â·ÓÉÖ¸¶¨ÁËÒ»¸öÄäÃûº¯Êý×÷Ϊ´¦Àí³ÌÐò£¬¸Ãº¯Êý·µ»ØÒ»¸öÊý×飬Ȼºóͨ¹ý response()->json() ÒªÁ콫Êý×éת»»Îª JSON ÃûÌÃÊý¾Ý£¬×îºó·µ»Ø¸ø¿Í»§¶Ë¡£
»á¼û½Ó¿Úʱ£¬Í¨³£ÐèÒªÏòЧÀÍÆ÷·¢ËÍÇëÇ󣬲¢Æ¾Ö¤·µ»ØµÄÊý¾Ý¾ÙÐÐÏìÓ¦µÄ²Ù×÷¡£ÔÚºóÃæµÄ²¿·ÖÖУ¬ÎÒÃǽ«ÏÈÈÝÔõÑùʹÓòî±ðµÄÇëÇóÒªÁìŲÓà API ½Ó¿Ú£¬ÒÔ¼°ÈçÄÇÀïÖúÍÆÊÎö·µ»ØµÄÊý¾Ý¡£
Èý¡¢Í¨¹ý Ajax »á¼û½Ó¿Ú
ͨ¹ý Ajax »á¼û½Ó¿ÚÊÇÒ»ÖÖ³£¼ûµÄ·½·¨£¬ÓÉÓÚËü¿ÉÒÔÔÚ¿Í»§¶ËÌṩ»ùÓÚ Web µÄÓû§½çÃæµÄͬʱ£¬Ö±½ÓŲÓÃЧÀÍÆ÷¶ËµÄ API ½Ó¿Ú¡£
ÔÚ Laravel ÖУ¬ÎÒÃÇ¿ÉÒÔʹÓà jQuery µÄ Ajax ÒªÁìÀ´ÊµÏÖ¶Ô RESTful API µÄ»á¼û¡£ÏÂÃæÊÇÒ»¸öʾÀý£¬Õ¹Ê¾ÁËÔõÑùʹÓà Ajax »á¼ûÉÏÃæ½ç˵µÄ /api/products ½Ó¿Ú£º
$.ajax({ url: '/api/products', type: 'GET', dataType: 'json', success: function (data) { console.log(data); }, error: function () { alert('ÇëÇóʧ°Ü£¡'); } });
µÇ¼ºó¸´ÖÆ
ÔÚÉÏÃæµÄ´úÂëÖУ¬ÎÒÃÇͨ¹ý $.ajax() ÒªÁì·¢ËÍÒ»¸ö GET ÇëÇó£¬Ö¸¶¨Á˽ӿڵĵص㡢Êý¾ÝÀàÐÍÒÔ¼°ÀֳɺÍʧ°ÜºóµÄ»Øµ÷º¯Êý¡£ÈôÊÇÀֳɷµ»ØÊý¾Ý£¬ÎÒÃÇʹÓà console.log() ÒªÁ콫ÆäÊä³öµ½ä¯ÀÀÆ÷µÄ¿ØÖÆ̨ÖС£
ËÄ¡¢Í¨¹ý Guzzle »á¼û½Ó¿Ú
Guzzle ÊÇÒ»¸ö»ùÓÚ PHP µÄ HTTP ¿Í»§¶Ë¿â£¬ËüÌṩÁËÒ»Ì×¼òÆÓ¡¢ÓÅÑÅ¡¢ÎÞаµÄ API À´¾ÙÐÐ HTTP »á¼û¡£ÔÚ Laravel ÖУ¬ÎÒÃÇ¿ÉÒÔʹÓà Guzzle À´»á¼û RESTful API¡£
ÔÚʹÓà Guzzle ֮ǰ£¬ÐèҪͨ¹ý Composer ×°ÖÃËü¡£×°ÖÃÍê³Éºó£¬ÎÒÃÇ¿ÉÒÔʹÓà HTTP ÀàºÍÏà¹ØµÄÒªÁìÀ´¾ÙÐÐÏÖʵµÄÇëÇó¡£ÏÂÃæÊÇÒ»¸öʾÀý£¬Õ¹Ê¾ÁËÔõÑùʹÓà Guzzle »á¼ûÉÏÃæ½ç˵µÄ /api/products ½Ó¿Ú£º
use GuzzleHttpClient; $client = new Client([ // API ½Ó¿ÚµÄ»ù±¾ URL µØµã 'base_uri' => 'http://example.com', ]); $response = $client->request('GET', '/api/products', [ 'headers' => [ 'Accept' => 'application/json', ], ]); $data = json_decode($response->getBody(), true); print_r($data);
µÇ¼ºó¸´ÖÆ
ÔÚÉÏÃæµÄ´úÂëÖУ¬ÎÒÃǽ¨ÉèÁËÒ»¸ö Guzzle ¿Í»§¶Ë¹¤¾ß£¬²¢ÉèÖà API ½Ó¿ÚµÄ»ù±¾ URL µØµã¡£È»ºó£¬ÎÒÃÇʹÓà request() ÒªÁì·¢ËÍÒ»¸ö GET ÇëÇó£¬Ö¸¶¨ÁËÇëÇóµÄ URI ºÍÇëÇóÍ·²¿µÄ Accept ²ÎÊý¡£×îºó£¬ÎÒÃǽ«Ð§ÀÍÆ÷¶Ë·µ»ØµÄ JSON ÃûÌÃÊý¾ÝÆÊÎöΪһ¸ö PHP Êý×飬²¢Êä³öµ½ÆÁÄ»ÉÏ¡£
Îå¡¢×ܽá
»á¼û½Ó¿ÚÊÇʹÓà Laravel ¿ª·¢ Web Ó¦ÓóÌÐòʱ³£¼ûµÄÐèÇóÖ®Ò»¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃÇÏÈÈÝÁËÔõÑùʹÓà Laravel µÄ·ÓÉϵͳ½ç˵ RESTful API£¬ÒÔ¼°ÔõÑùͨ¹ý Ajax ºÍ Guzzle »á¼û½Ó¿Ú£¬²¢´¦ÀíºÍÆÊÎö·µ»ØµÄÊý¾Ý¡£ÎÒÃÇÏ£ÍûÕâЩÄÚÈÝÄܹ»×ÊÖúÄú¸üºÃµØÃ÷È· Laravel ÖеĽӿڻá¼ûºÍʹÓÃÒªÁì¡£
ÒÔÉϾÍÊÇlaravel Ôõô»á¼û½Ó¿ÚµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡