




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,1,培训人:刘基军,RESTfulAPI,入门讲解,.,2,01,02,03,04,RESTfulAPI简介,HelloWorld,工具调试,注意事项,目录,CONTENTS,.,3,RESTfulAPI简介,01,.,4,前端设备层出不穷(手机、平板、桌面电脑、其他专用设备),促使前后端分离,方便不同的前端设备与后端进行通信,导致API架构的流行。RESTful架构,因结构清晰、符合标准、易于理解、扩展方便,是目前流行的一种互联网软件架构RESTfulAPI是目前比较成熟的一套互联网应用程序的API设计理论,为什么会有RESTfulAPI?,.,5,由RoyThomasFielding在他2000年的博士论文中提出:在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一个功能强、性能好、适宜通信的架构。他对互联网软件的架构原则,定名为REST。,什么是REST?,.,6,RoyThomasFieldingHTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席,.,7,REST=Representation+State+Transfer表现层状态转化资源在网络中以某种表现形式进行状态转移:Resource:资源Representation:某种表现形式,比如用JSON,XML,JPEG等StateTransfer:状态转化,通过HTTP动词实现,如何理解REST?,.,8,如果一个架构符合REST原则,就称它为RESTful架构。RESTful架构,是面向资源的架构:1.每一个URI代表一种资源2.客户端和服务器之间,传递这种资源的某种表现层3.客户端通过HTTP动词,对服务器端资源进行操作,实现表现层状态转化,什么是RESTful架构?,.,9,符合REST架构设计的API,就是RESTfulAPI特征:URL用于定位资源,用HTTP动词描述操作常见举例:查询编号为1的图书GET,什么是RESTfulAPI?,.,10,规则1.资源表示一种实体,URI使用名词表示,不应该包含动词;一般来说,数据库中的表都是同种记录的集合(collection),所以URI中的名词应该使用复数。正确举例:GET/zoos:列出所有动物园POST/zoos:新建一个动物园GET/zoos/ID:获取某个指定动物园的信息错误举例:GET/posts/show/1正确写法:GET/posts/1,URI设计规则,.,11,规则2.如果某些动作是HTTP动词表示不了的,应该把动作做成一种资源。错误举例:网上汇款,从账户1向账户2汇款500元:POST/accounts/1/transfer/500/to/2正确的写法:把动词transfer改成名词transaction,资源不能是动词,但是可以是一种服务:POST/transactionfrom=1,.,26,用于将请求URL中的变量映射到功能处理方法的参数上。示例代码:ControllerpublicclassTestControllerRequestMapping(value=/users/userId,method=RequestMethod.GET)publicStringgetUser(PathVariable(userId)StringuserId)System.out.println(UserId:+userId);,PathVariable,.,27,1.常用来处理简单类型的绑定,通过request.getParameter()获取的String可直接转换为简单类型的情况。可以处理get方式中queryString的值,也可以处理post方式中bodydata的值;2.用来处理Content-Type:为application/x-www-form-urlencoded编码的内容,提交方式GET、POST;3.有三个常用参数:value:值表示接受的传入的参数类型defaultValue:表示设置默认值required:是否是必须要传入的参数,RequestParam,.,28,示例代码:ControllerRequestMapping(/pets)publicclassPetsControllerRequestMapping(value=“”,method=RequestMethod.GET)publicStringsetupForm(RequestParam(petId)intpetId)/.returnpetForm;,.,29,该注解常用来处理Content-Type不是application/x-www-form-urlencoded编码的内容,如application/json等。它将处理完的结果绑定到相应的实体或Map上。示例代码:RequestMapping(value=/users,method=RequestMethod.POST)publicvoidhandle(RequestBodyUserbean)throwsIOException/,RequestBody,.,30,使用场景:返回的数据不是html页面,而是其他某种格式的数据时(如json、xml等)示例代码:RequestMapping(/users/userId)ResponseBodypublicPersongetUserInfo(PathVariable(“userId”)StringuserId)Personp=userService.getUserById(userId);returnp;,ResponseBody,.,31,Postman工具测试,03,.,32,Postman是一个强大的HTTP调试和请求工具。其他类似流行的工具有:火狐浏览器插件-RESTClient等。,.,33,.,34,Windows64位下载地址:,.,35,注意事项,04,.,36,“REST难道就没有任何缺点了吗?”当然不是,评价一种软件架构的优劣,不能脱离开软件的具体运行环境。永远不存在适用于任何运行环境的、包治百病的银弹式架构。REST是一种为运行在互联网环境中的Web应用量身定制的架构风格。REST在互联网这个运行环境之中已经占据了统治地位,然而,在企业内网运行环境之中,REST还会面临DO、RPC的巨大挑战。特别是一些对实时性要求很高的应用,REST的表现不如DO和RPC。所以需要针对具体的运行环境来具体问题具体分析。,.,37,会说话的ID返回多余的数据,1.避免不经意间泄露的业务信息,.,38,一个典型的RESTful的URL会用资源名加上资源的ID编号来标识某个唯一的资源例如:/users/100带有从属关系的RESTful:/ResourceA/ResourceB/ResourceC/例如:/users/100/orders/280010在对资源进行操作之前,就得先检查这些资源之间的从属关系,以确保当前请求具有相关的访问、操作权限。,2.避免遗漏对资源从属关系的检查,.,39,发送
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《VI设计》技工中职全套教学课件
- 2025年医学影像学初级考试模拟题及答案
- 2025年物资管理职位招聘考试热点分析与模拟题集
- 2025年前端开发专家技能评估预测题
- 2025年炼钢设备维护与操作高级考试指南
- 布鲁氏杆菌教学课件
- 2025年综合物资保管员招聘考试指南与模拟试题集萃
- 2025届高中英语一轮复习:必修第三册 Unit 5 What an adventure
- 2025年职业技能安全生产主要负责人烟花爆竹经营单位-金属非金属矿山(地下矿山)参考题库含答案解析
- 2025年职业技能健身教练参考题库含答案解析
- 2025年网络安全培训考试题库(网络安全专题)网络安全漏洞挖掘与利用升级试题
- 企业差旅费管理制度
- 成都盐道街中学实验学校数学新初一分班试卷含答案
- 2024-2025学年人教版数学七年级下册期末测试卷 (含答案)
- 篮球-传切配合 教学设计-2023-2024学年高三上学期体育与健康人教版必修第一册
- 抗诉申请书范本
- 《室上性心动过速》课件
- 2025年国家电网公司招聘笔试参考题库含答案解析
- “医养结合嵌入式”养老模式的必要性、困境与对策研究
- 叉车操作人员培训课件
- 《培训电气基础知识》课件
评论
0/150
提交评论