Api是一个实现方式,web Service属于架构中的web服务,RPC属于它的一种
从使用方式上,可分为RPC,SOA,REST
从数据格式上,分为xml JSON
其中,RPC和SOAP的使用在减少,Restful架构占到了主导地位;XML格式的使用在减少,json等轻量级格式的使用在增多。
1.功能分类
1.1功能模块之间的接口(同一个数据库)
1.2系统间接口
2.不同类型接口分别代表?
http接口、api接口、RPC接口、RMI、webservice、Restful等概念
RPC:所谓的远程过程调用 (面向方法)
简单的说,RPC就是从一台机器(客户端)上通过参数传递的方式调用另一台机器(服务器)上的一个函数或方法(可以统称为服务)并得到返回的结果。
RPC 会隐藏底层的通讯细节(不需要直接处理Socket通讯或Http通讯)
RPC 是一个请求响应模型。客户端发起请求,服务器返回响应(类似于Http的工作方式)
RPC 在使用形式上像调用本地函数(或方法)一样去调用远程的函数(或方法)。
SOA:(面向服务的软件架构、Service Oriented Architecture 面向消息)
基于SOA的解决方案,SOA架构可分为五层水平:
用户界面层---- 这些GUI的最终用户或应用程序访问的应用程序/服务接口;
业务流程层---- 在应用方面的业务用例服务;
服务层---- 服务合并在一起,提供统一的实时服务;
服务组件层---- 用来建造服务的组件,如功能库、技术库、技术接口等;
操作系统---- 这层包含数据模型,企业数据仓库,技术平台等;
SCA
SCA全称Service Component Architecture,中文叫服务组件化架构。SCA是基于SOA开发的一个模型规范,由IBM领头提出的标准。
微服务
微服务架构在某种程度上是面向服务的架构SOA继续发展的下一步。
它们可以写入不同的编程语言并使用不同的数据库。集中式服务管理几乎不存在,微服务使用轻量级HTTP、REST或Thrift API进行通信。
REST:所谓的 Representational state transfer (面向资源|表现层状态转移 )
描述的是在网络中client和server的一种交互形式
RPC 即远程过程调用, 很简单的概念, 像调用本地服务(方法)一样调用服务器的服务(方法).
通常的实现有 XML-RPC , JSON-RPC , 通信方式基本相同, 所不同的只是传输数据的格式.
REST 的三个要素是 唯一的资源标识, 简单的方法 (此处的方法是个抽象的概念), 一定的表达方式.
重要的特性:无状态
个人也比较喜欢REST,目前基本主流开放平台都是使用这个(淘宝开放平台/人人网/facebook...)
Web Service 已经是过时之物,平常基本使用甚少,建议不要在折腾它了
自己的接口就用https,加上一个key做一次hash放在最后即可。考虑到国情,HTTPS在无线网络里不稳定,可以使用Application Level的加密手段把整个HTTP的payload加密
作者:覃超
链接:https://www.zhihu.com/question/28557115/answer/48094438
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
各端的具体实现
如上面的图所示,Server统一提供一套RESTful API,web+ios+android作为同等公民调用API。各端发展到现在,都有一套比较成熟的框架来帮开发者事半功倍。
-- Server --
推荐: Spring MVC 或者 Jersey 或者 Play Framework
教程:
Getting Started · Building a RESTful Web Service
-- Android --
推荐: RetroFit (Retrofit) 或者 Volley (mcxiaoke/android-volley · GitHubGoogle官方的被block,就不贴了 )
教程:
Retrofit โ�� Getting Started and Create an Android Client
-- iOS --
推荐:RestKit (RestKit/RestKit · GitHub)
教程:
Developing RESTful iOS Apps with RestKit
-- Web --
推荐随便搞!可以用重量级的AngularJS,也可以用轻量级 Backbone + jQuery 等。
教程:http://blog.javachen.com/2015/01/06/build-app-with-spring-boot-and-gradle/
参考:
[2]:GitHub API v3
网友评论