- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内网API设计格对比分析
内网API设计风格对比分析选择最适合业务需要的API设计风格主讲人:李锟API的分类进程内调用API调用本地开发库本地进程间调用APILinux IPCAndroid IPC远程调用API内网API——企业内网中的API外网API——面向互联网的API外网应用内部API外网公共API什么是架构风格?一种 架构风格 是由一组相互协作的 架构约束 来定义的。架构约束是指应用软件的运行环境对于架构设计的约束条件。应用软件的架构设计不能脱离其运行环境。不同的运行环境,决定了应用的类型。不同类型的应用,会有不同的架构风格。架构风格比 架构实例(具体的架构)更加抽象。架构风格与架构实例可以理解为类似于OOP中接口与实现类之间的关系。架构风格是从建筑学中借用来的概念。来自美国建筑大师Christopher Alexander名著《建筑的永恒之道》(The?Timeless?Way?of?Building)建筑学中的不同风格流派举例:山西平遥乔家大院、安徽歙县徽商大宅院、江苏苏州拙政园分布式应用的架构风格服务设计、服务粒度划分面向服务的架构(Service Oriented Architecture,简称SOA)微服务架构(Microservices Architecture)领域驱动设计(Domain-Driven Design,简称DDD)分布式应用的架构风格远程调用API分布式对象(Distributed Objects,简称DO)CORBA/RMI/EJB/DCOM/.NET Remoting远程过程调用(Remote Procedure Call,简称RPC)SOAP/XML-RPC/JSON-RPC/Hessian/Burlap/Flash AMF/Dubbo RPC基于Google Protocol?Buffer数据交换格式的各种RPC协议基于Apache Thrift的各种RPC协议,例如唯品会的OSP表述性状态移交(Representational State Transfer,简称REST)将HTTP协议真正作为一种 应用协议 来使用,不再需要基于HTTP的各种RPC协议RESTful API——符合REST架构风格要求的API什么是REST?什么是REST?由Roy Fielding在其2000年的博士论文《架构风格与基于网络应用软件的架构设计》(Architectural Styles and the Design of Network-based Software Architectures)中提出REST有两种理解方式REST是一种分布式应用的架构风格——抽象层面REST是一种为 面向互联网的应用软件 量身定制的架构风格REST正是 Web自身的架构风格,它是Web所取得的巨大成功在技术层面的原因和理论基础REST在Web之上是 普适的,同时适用于Web App和Web APIREST是一种分布式应用的架构设计方法——具体层面REST有很多具体的设计原则和指导,实战性很强REST与RPC两种API调用风格的区别REST对服务器端做抽象的基本单元是 资源,RPC对服务器端做基本抽象的单元是 过程。REST的建模是以名词为核心的,RPC的建模是以动词为核心的。RPC中没有统一接口的概念。即使采用相同的协议,不同的API,设计风格可以完全不同。RPC也不支持操作语义对于中间组件的可见性。RPC中无法使用超媒体,响应的内容只包含数据。REST中使用了超媒体后,可以实现很大粒度的交互,交互的效率比RPC更高。REST支持数据流和管道,RPC不支持数据流和管道。因为使用了平台中立的消息,RPC的耦合度会比DO要小一些,但是RPC也常常会带来客户端与服务器端的紧耦合。REST中假如使用了超媒体,客户端与服务器端可以达到最小的耦合度。RPC API的优点对于服务器端开发人员而言,容易设计、开发便于做集中的监控基于socket的二进制RPC协议,建立连接延迟低、网络传输效率高支持有状态的长连接,可进行双向通信,实时性好RPC API的缺点紧耦合API一旦暴露出去,就难以再做改动没有统一的设计风格增加了客户端开发人员的学习成本难以实现通用的客户端库通常粒度较小开发人员很容易混淆远程调用与本地调用会损害用户(客户端)可感知的性能Richardson成熟度模型Richardson成熟度模型第0级:没有明确的资源概念,只有一个URL,只使用单个HTTP方法。第1级:有明确的资源概念,存在很多URL,只使用单个HTTP方法。第2级:有明确的资源概念,有很多URL,使用HTTP作为操作资源的统一接口。通常将对于资源的CRUD式操作分别映射到4个HTTP方法。第3级:在第2级的基础上,使用超媒体作为应用状态的引擎(Hypermedia as th
您可能关注的文档
- 公共事业理的求心力与远心力陈永明华东师范大.ppt
- 全面风险管理培训风险评估实务电建集ppt课件.ppt
- 公公路水运工程试验检测--监理工程师道路与桥梁试题六套.doc
- 公共事业织战略管理.ppt
- 公共业管理.ppt
- 八寨坪泉砂厂设计.doc
- 公共交通管与大气环境.ppt
- 公共卫管理工程.ppt
- 公共场所卫监督量化分级管理制度.ppt
- 公共危管理.ppt
- 《GB/T 32151.42-2024温室气体排放核算与报告要求 第42部分:铜冶炼企业》.pdf
- GB/T 32151.42-2024温室气体排放核算与报告要求 第42部分:铜冶炼企业.pdf
- GB/T 38048.6-2024表面清洁器具 第6部分:家用和类似用途湿式硬地面清洁器具 性能测试方法.pdf
- 中国国家标准 GB/T 38048.6-2024表面清洁器具 第6部分:家用和类似用途湿式硬地面清洁器具 性能测试方法.pdf
- 《GB/T 38048.6-2024表面清洁器具 第6部分:家用和类似用途湿式硬地面清洁器具 性能测试方法》.pdf
- 《GB/T 18238.2-2024网络安全技术 杂凑函数 第2部分:采用分组密码的杂凑函数》.pdf
- GB/T 18238.2-2024网络安全技术 杂凑函数 第2部分:采用分组密码的杂凑函数.pdf
- 《GB/T 17215.686-2024电测量数据交换 DLMS/COSEM组件 第86部分:社区网络高速PLCISO/IEC 12139-1配置》.pdf
- GB/T 13542.4-2024电气绝缘用薄膜 第4部分:聚酯薄膜.pdf
- 《GB/T 13542.4-2024电气绝缘用薄膜 第4部分:聚酯薄膜》.pdf
文档评论(0)