Laravel框架分享讲解.pptx

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Laravel5 学习分享;分享主题 为什么用Laravel5 RESTful 风格API简介 Laravel5 API自动文档介绍 ;Laravel5框架;个人开发框架;RESTful 风格API简介; 为了解决以上存在的问题,所以有了laravel的路由自定义 能够设定路由组,在路由组中增加中间件,以实现对一组路由的处理 自带RESTful风格路由,laravel已经完美封装了各类请求携带的参数 限制某些方法只能通过特定请求方式进行访问(如只能get,不能post等)。;比如一个电影的网站,REST 的 URI 可设计为: GET ???????/movies??????????????//电影列表 GET ???????/movies/123??????//查看某部电影 POST ?????/movies????????????? //添加电影 PUT ???????/movies/123??????//修改某部电影 DELETE??/movies/123??????//删除某部电影 错误的REST 的 URI 设计 就是URI包含动词,因为资源表示一种实体,所以应该是名词,URI不应该有动词,动词应该放在HTTP协议中。 某个URI是/posts/show/1,其中show是动词,这个URI就设计错了,正确的写法应该是/posts/1,然后用GET方法表示show。 如果某些动作是HTTP动词表示不了的,你就应该把动作做成一种资源。比如网上汇款,从账户1向账户2汇款500元,错误的URI是: POST /accounts/1/transfer/500/to/2 正确的写法是把动词transfer改成名词transaction,资源不能是动词,但是可以是一种服务: POST /transaction HTTP/1.1 Host:    from=1to=2amount=500.00;RESTful API 设计;处理资源之间的关系 GET /movies/12/messages - 获取movie #12下的消息列表 GET /movies/12/messages/5 - 获取movie #12下的编号为5的消息 POST /movies/12/messages - 为movie #12创建一个新消息 PUT /movies/12/messages/5 - 更新movie #12下的编号为5的消息 PATCH /movies/12/messages/5 - 部分更新movie #12下的编号为5的消息 DELETE /movies/12/messages/5 - 删除movie #12下的编号为5的消息 ;自动装载相关的资源描述 在很多种情况下,API的使用者需要加载和被请求资源相关的数据(或被请求资源引用的数据)。与要求使用者反复访问API来获取这些信息相比,允许在请求原始资??的同时一并返回和装载相关资源,将会带来明显的效率提升。 Eg:如获取某一个商品的同时,不仅仅传递出商品的基本信息,还会传递出商品卖家的一些信息, 此处需要注意的是N+1 select问题 访问频率限制(本期暂不使用) 为了防止滥用,标准的做法是给API增加相关的访问频率限制(eg:微信某些关键接口就增加了每天调用次数的限制)。 可使用一下http头来达到目的: X-Rate-Limit-Limit - 当期允许请求的次数 X-Rate-Limit-Remaining - 当期剩余的请求次数 X-Rate-Limit-Reset - 当期剩余的秒数 缓存机制 Http提供了etag标签来进行缓存的判别,执行流程: 1. 客户端首次访问一个Rest API,后端返回一串JSON数据,并在请求头中添加一个Etag标签,这个标签对应的是一个用MD5或者SHA1等哈希算法来生成的信息指纹(关键是唯一标识,如常见的GUID)。 2. 客户端保存这个Etag值,再次发起请求的时候,以If-None-Match作为Key添加到请求头中 3. 服务端校验请求头中的Etag数据,并跟当前将要输出数据的指纹做校验,如果一致,则表明没有更改,返回状态码为304,如果不一致, 则返回200,并将新的Etag同时返回,以便下次客户端请求时使用 ;错误处理 如果状态码是4xx或5xx,就应该向用户返回出错信息。这里需要注意的是错误分为给前端开发人员查看及用户查看两类。 对PUT, PATCH和POST请求进行错误验证将需要一个字段分解。下面可能是最好的模式:使用一个固定的顶层错误代码来验证错误,并在额外的字段中提供详细错误信息,就像这样: ;状态码 服务器向用户返回的状态码和提示信息,常见的有以下一些(方括号中是

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档