Laravel5.2简单的API实现

来源:互联网 发布:apache url重写 编辑:程序博客网 时间:2024/06/05 14:53

很多新手对于API很头疼,不知道API是干嘛的,其实简单的说就是把原来传到模板上的东西用JSON输出一下罢了,这也就是为什么都是先写后台,后写API,稍微改改就行了,下面举个简单的例子:

你原来的路由是这样写:

[php] view plain copy print?
  1. Route::resource('myschool','MyschoolController');  
然后你把MyschoolController.php复制一份,放到Controllers/Api文件夹(新建)下
[php] view plain copy print?
  1. Route::resource('myschool_api','Api\MyschoolApiController');  

你原来的展示页面的控制器是这样写的:

[php] view plain copy print?
  1. public function index(){  
  2.   
  3.     return view("home.myschool.index")->withSchool(School::find(1));  
  4.    }  
写成API就稍稍改变一下,让他return个json就行
[php] view plain copy print?
  1. public function index(){  
  2.         $page=School::find(1);  
  3.           
  4.         return response()->json(['status'=>1,'msg'=>'查询成功!','data'=>$page->toArray()]);  
  5.     }  
其中,status是状态码,msg是反馈信息,data是你查到的东西,别忘了后面的toArray(),要不出来一大堆东西。

做API就是这样简单,不管是增删改查哪个,你给他都返回一个json就可以,举个删除的例子

例如删除方法,以前是跳转到页面,而API是返回一个JSON:

[php] view plain copy print?
  1. public function destroy($id)  
  2.     {  
  3.           
  4.         $page = School::find($id);  
  5.         if ($page->delete()) {  
  6.                   return response()->json(['status'=>1,'msg'=>'删除成功!']);  
  7.           
  8.         } else {  
  9.                   return response()->json(['status'=>0,'msg'=>'删除失败!']);  
  10.         }  
  11.           
  12.     }  

还有就是,测试API的话使用谷歌浏览器自带的插件POSTMAN十分好用,GET是查询,POST是新增,PUT是更新,DELETE是删除,不过他是不支持从表单传参数的,要从地址栏传参数,例如你的地址是:http://localhost:8000/myschool_api/10,这个地址就是意味着你要对ID是10的数据进行操作,你选put他就是更新,你选delete他就是删除