使用laraval框架和前端完成restful风格的请求对接(这里只是讨论restful的概念)
现在,在开发中restful风格的api是比较流行的,尤其是在前后端分离的架构中。
这些东西这一下这篇文章中说的很详细:RESTful接口设计原则和优点
下面,我们来讨论如何使用laraval和前端完成restful风格的接口对接。
因为,restful风格的接口中不包含动词,它得增删改查有http请求方式决定:post、delete、put(patch)、get。
所以我们第一件事情,先在laraval中编写好对应的路由(我这里只是讨论了restful的一个概念,所以只是写到路由层次,没有再更深的写逻辑,网读者见谅):
1、找到路由文件(laravel\app\Http\Routes.php),做如下编辑:
<?php
header('Access-Control-Allow-Origin:*'); //代表允许任何网址请求,如果不写的话,跨域访问回报错。
header('Access-Control-Allow-Methods:GET, POST, PATCH, PUT, DELETE, OPTIONS'); //代表允许以上请求方式访问,如果没有这句话的话,put/patch/delete访问回报没有访问权限的错!!!
Route::get('/', function () {
return view('welcome');
});
//接受get请求的路由
Route::get('restful',function(){
$arr = array('statuCode' =>200,'content' => 'this is GET');
return json_encode($arr);
});
//接受post请求的路由
Route::post('restful',function(){
$arr = array('statuCode' =>200,'content' => 'this is POST');
return json_encode($arr);
});
//接受put请求的路由
Route::put('restful',function(){
$arr = array('statuCode' =>200,'content' => 'this is PUT');
return json_encode($arr);
});
//接受patch请求的路由
Route::patch('restful',function(){
$arr = array('statuCode' =>200,'content' => 'this is PATCH');
return json_encode($arr);
});
//接受delete请求的路由
Route::delete('restful',function(){
$arr = array('statuCode' =>200,'content' => 'this is DELETE');
return json_encode($arr);
});
2、编辑前端html文件(该文件可以放在任何地方,因为我们这里是前后端分离的,使用ajax请求的数据):
<!-- 这是jquery的cdn -->
<script
src="https://code.jquery.com/jquery-2.2.4.min.js"
integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="
crossorigin="anonymous"></script>
<head>
<!-- 一些样式 -->
<style type="text/css">
.div {
width:100px;
color:red;
float:left;
text-align:center;
background:#ccc;
margin-left:5px;
}
</style>
</head>
<div class = 'div get'>
get
</div>
<div class = 'div post'>
post
</div>
<div class = 'div put'>
put
</div>
<div class = 'div patch'>
patch
</div>
<div class = 'div delete'>
delete
</div>
<script>
$(".div").click(function(){
$(this).css("background-color","yellow");
});
$(".div").mouseover(function(){
$(this).css("background-color","#333");
});
$(".div").mouseleave(function(){
$(this).css("background-color","#ccc");
});
//get请求
$(".get").click(function(){
var method = 'get';
requireFunction(method);
});
//post请求
$(".post").click(function(){
var method = 'post';
requireFunction(method);
});
//put请求
$(".put").click(function(){
var method = 'put';
requireFunction(method);
});
//patch请求
$(".patch").click(function(){
var method = 'patch';
requireFunction(method);
});
//delete请求
$(".delete").click(function(){
var method = 'delete';
requireFunction(method);
});
//ajax公共方法
function requireFunction(method){
$.ajax({
type: method,
dataType: 'json',
url: 'http://localhost:8080/laravel/public/restful',
success:function(data){
console.log(data);
},
error:function(){
alert('shibai');
}
});
}
</script>
做完以上两个文件的编辑,我们就完成了一个简单的基于restful的前后端分离的请求场景。
下面我们来做观察:
1、观察请求页面。

2、我们观察一下laraval的路由。

3、看一下ajax请求的路径。

通过上面两张图片的结合,我们可以知道,我们编写的这个小例子,是一个真正的restful类型的接口风格。拿到数据后前端程序员在进行页面渲染,这就是一个前后端分离的理念。
需要注意的是:
laraval的post请求,默认是有CsrfToken验证的。这个例子中我们不需要验证,可以修改一下文件(laravel\app\Http\Middleware\VerifyCsrfToken.php)文件。
找到 VerifyCsrfToken.php文件(app/http/middleware)添加如下方法
public function handle($request, \Closure $next)
{
// 使用CSRF
//return parent::handle($request, $next);
// 禁用CSRF
return $next($request);
}
使用laraval框架和前端完成restful风格的请求对接(这里只是讨论restful的概念)的更多相关文章
- springboot的restful风格获取请求中携带的参数
http://localhost:8080/emp/1 有以上请求,我们controller要怎么获取请求中传递的参数1呢? 通过PathVariable注解,如下: @DeleteMapping(& ...
- restful风格,restcontroller与controller
restful风格,restcontroller与controller 初步接触springmvc的时候,被要求使用restful风格,彼时一头雾水,不懂何谓restful,参阅了很多资料,慢慢的接触 ...
- Restful风格接口浅析
为什么使用RESTful1.JSP技术可以让我们在页面中嵌入Java代码,但是这样的技术实际上限制了我们的开发效率,因为需要我们Java工程师将html转换为jsp页面,并写一些脚本代码,或者前端代码 ...
- SpringMVC(三)Restful风格及实例、参数的转换
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.Restful风格 1.Restful风格的介绍 Restful 一种软件架构风格.设计风格,而不是 ...
- 使用RESTful风格开发Java Web
什么是RESTful风格? REST是REpresentational State Transfer的缩写(一般中文翻译为表述性状态转移),REST 是一种体系结构,而 HTTP 是一种包含了 RES ...
- Restful风格wcf调用4——权限认证
写在前面 在前面的三篇文章,已经介绍了restful风格wcf,如何实现增删改查以及文件的上传下载操作.本篇文章将介绍一下,调用restful的权限认证的内容.在调用的接口,为了安全,总会需要对请求进 ...
- 让python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE等请求
这两天在用python的bottle框架开发后台管理系统,接口约定使用RESTful风格请求,前端使用jquery ajax与接口进行交互,使用POST与GET请求时都正常,而Request Meth ...
- RESTful风格的Web服务框架:Swagger
Swagger与SpringMVC项目整合 为了方便的管理项目中API接口,在网上找了好多关于API接口管理的资料,感觉目前最流行的莫过于Swagger了,功能强大,UI界面漂亮,并且支持在线测试等等 ...
- django框架实现restful风格的API开发
RESTful风格的要求:https://www.cnblogs.com/chichung/p/9933116.html 利用django原生的框架直接做RESTful的API开发是怎样的呢?感受一下 ...
随机推荐
- SSM 记录
前言:本过程从0开始,先是导入最核心的jar包,然后随着ssm中的功能实现,打包===>启动===>报错,一步步解决问题,增加额外的必须的jar包来熟悉ssm 1.导包(核心包) myba ...
- awk 复习
awk 的再次学习!!!! awk 的一般模式 awk '{parttern + action }' {filename} , 提取/etc/passwd 的用户 awk -F ":&quo ...
- [Java]直播方案----[接入环信聊天室]+[腾讯云直播]
辛辛苦苦写的,转载请注明一下,这点信任我想还是有的吧,谢谢了. http://www.cnblogs.com/applerosa/p/7162268.html 之前做了直播,一直没时间写,好不容易闲下 ...
- cmd中mysql主键id自增,在添加信息时发生错误,再次成功添加时,id已经跳过错误的信息继续自增。
id 自增,在往这个表里添加信息时 发生错误,再次添加 id数值已经跳过之前
- 截取字段split
172.0.0.1String[] splitAddress=qip.split("\\.");//--172001 String ip=splitAddress[0]+" ...
- 记录一个bootstrap惨痛的错误
记录一个bootstrap的错误,这个错误因为我删除了一个class就导致了页面上显示的错误,这是一个惨痛的教训,特此记录,提醒自己在做前端的修改时,一定要慎之又慎.如果真的要做改动,改完之后也要测一 ...
- Java学习之--List和ArrayList
首先明确: List是一个接口,不能被创造实例对象 ArrayList是List 接口的一个实现类,ArrayList类实现了List接口(List接口有多个实现类,例如ArrayList,Linke ...
- 20175313 张黎仙《Java程序设计》第九周学习总结
目录 学号 20175313 <Java程序设计>第九周学习总结 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 学号 20 ...
- Oracle 10053
[10053]alter session set events '10053 trace name context forever,level 1'; <Run your SQL here;&g ...
- 如何增加Ubuntu交换空间swap
如何增加Ubuntu交换空间swap 1 使用命令查看系统内swap分区大小 green@green:~$ free -m total used free shared buff/cache ava ...