浅谈API接口

竹林之风6年前 (2016-03-24)技术积累1656

        API接口作为面向外部系统的门户,其背后是数据,用于隔离系统与数据,方便各异构系统整合与交互。不同系统之间的交互本质上是数据的交互,若直接访问各自的数据,必然造成高耦合、混乱和不安全,所以API也可以看作是外部系统与数据之间的中间件,用于各异构系统之间共享数据。

        设计API,首先要考虑如下几个问题:

(1)如何标识调用方;

(2)如何防止请求被撰改;

(3)如何过滤过期请求。

        对于调用方的标识,API可以为每个客户端分配一个ID和Key,ID用来指定是哪一个调用方,Key是与该调用方关联的验证码。至于防止请求被撰改,可以将关键请求参数附加上Key按一定规则排序后做MD5签名(当然可以是其它摘要生成方式,如SHA等,不论哪种方式都必须保证Key不被泄露)。判断过期/重复请求,或者说防重放攻击,可以再请求参数中加上时间戳和随机数并参与签名或加密;当客户端和服务端时间在误差之类允许调用,随机数用于调用相同接口相同参数每次生成的签名不一样,也可以做请求是否重复的判断。当然采用HTTPS保证调用方和API之间数据传输的私密性,防止被截获。

        API有多种风格,如传统的RPC、RESTFul API等;API也有基于各种协议的,如TCP、HTTP等;API的请求响应数据格式也有多种,包括XML、JSON和二进制等。

标签: ITAPI

相关文章

如何解决Cookie和Ajax的跨域问题

        Cookie用来在浏览器端保存小文本信息,它的属性Domain和Path用来标识该Cookie在什么域和...

HTTP长连接与短连接、长轮询与短轮询及长轮询的实现概述

        HTTP长连接(long connection)与短连接(short connection)本质上是TCP长连接和短连接:短连接是指在一次HTT...

AJAX网页如何实现SEO友好

        在WEB网页上应用AJAX技术可以提高用户体验,但是对于SEO却不够友好,因为搜索引擎不会执行JS,而A...

关于学习IT新技术的一点看法

        IT技术的确是日新月异、更新迅猛,学习IT的人得坚持学习、积极跟进IT技术的步伐。可能一个人刚掌握一门技...

没有新的东西,只有新的组合!

        曾经在一本书上看到这样一句:没有新的东西,只有新的组合!思量万千,不无道...

小试Git源码版本控制

        我们一个人开发或维护一个项目的时候,一般项目源码放在自己的电脑上就可以了;当加入新成员和我们一起开发或维...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法和观点。