怎么搭建接口服务器。需要哪些的软件支持?
那就是路由器!如果你想用服务器做DMZ的话,就是做一个攻击缓冲区,那也不需要什么特别的软件,而且也是多此一举,因为好多单位都不是高度保密单位!
所以:
1、详细描述网络状况;
2、使用什么服务器,型号,功能!
3、着重说明服务器所处的位置,及提供的服务!
4、打算使用什么样的操作系统,及基础软硬件!
sas硬盘 即串行连接SCSI,是新一代的SCSI技术,和现在流行的Serial ATA(SATA)硬盘相同,都是采用串行技术以获得更高的传输速度,并通过缩短连结线改善内部空间等。SAS是并行SCSI接口之后开发出的全新接口。此接口的设计是为了改善存储系统的效能、可用性和扩充性,并且提供与SATA硬盘的兼容性。
是一组芯片内部集成vxworks联入式爆作系统,通过一个标准尺J45接口连接到工作环境的交换机。只要将服务器接入网络并且没有断开服务器的电源,不管HP服务器的处于何种状态(开机、关机、重启),都可以允许用户通过网络进行远程管理。
在实际的网站设计中我们经常会遇到用户数据的验证和加密的问题,如果实现单点,如果保证数据准确,如何放着重放,如何防止CSRF等等。
其中,在所有的服务设计中,都不可避免的涉及到Token的设计。
目前,基于Token的生成方,我们把Token生成分为两种类型。
1、基于用户/网站,可见的加密请求方式
2、基于服务器间通讯的不可见加密请求方式(API Token)
其中,基于非服务器端的请求,我们要根据实际的应用场景进行一定的自定义加工。
在本次讨论中我们把非服务的请求分为了两部分。
两种请求中:
1、非登录态请求要求用户访问页面时会随机生成唯一且有时效性的token,该token在每次请求时都是不同。改方法用于当不需要登录界面的请求多且无法使用静态页面的时候使用,Token会在一定的时间内失效,以此来防止被机器爬取不需登录的界面
2、登录状态中,token会保存一定的时间,页面中的token会作为用户身份识别,同时登录态的Token需要利用session和页面信息来防止被利用。
虽说两者作用有一定的区别,但是实现的原理是相同的。
登录态的Token一般在用户登录之后由服务器产生,并保存在浏览器中,过期时间较长,用于保存用户的登录状态。
同时,我们也可以在该Token中加入一定的校验元素,例如浏览器信息,ip,获取是Cookies
如果对时效性较强的页面登录访问,我们可以加入session的校验,设置session的有效时间,能够实现自动退出的校验功能。
TimeStamp用来校验Token的生成时间。
同时,你用redis的Hset可以实现多点登录和单点登录的功能。
服务端验证Token:
在常规的API Token体系中,我们常使用短时过期Token(Oauth Token除外)。
通常 APIToken 是使用非对称加密来实现token的生成,但是世界生产中,Token 的秘钥会简化成app_id,app_key等简单的加盐参数,不过只要秘钥保存合理,Token基本无法被破解。
该Token方式要求每次请求都需要生成新的token来确保请求的时效性。
另外:为了加强API接口请求的完整性,我们也会对请求内容进行字段排序后摘要验证。(详情参考: https://opentaobaocom/docV2htmdocId=101617&docType=1 )
1、接口禁止方法重载,重载会在做服务SLA控制,日志监控等方面带来不便
2、接口注释必须清晰地表达如何使用,接口是同步还是异步,服务内容,参数校验规则(精度、长度、取值范围等),返回值信息,异常情况;使用场景有要求的需要重点这几个方面描述
a)不同使用场景,在注释中区分描述
b)特定使用场景下的业务规则描述
c)特定使用场景下的注意事项描述
格式上参照注释规范{}
3、接口返回值中属性禁止使用枚举,如果返回值属性是枚举类型,会为后期升级埋下隐患(由于枚举序列化的特性导致
删除枚举值和增加枚举值都可能导致客户端反序列化失败),建议提供String类型,取值范围可以通过枚举来告诉客户端
禁止声明方式
建议声明方式
/ 强制还款标志,取值范围见{@link EnforceFlagEnum}/
private String enforceFlag;
4、接口参数涉及取值范围选择的(比如交易码,渠道类型,身份标识),需提供对应的常量给客户端使用,谨慎使用枚举做入参
唯一性控制属性:a)如接口请求参数包含业务唯一性控制字段,需要对相关字段以及唯一性控制方式进行特别说明
b)若在唯一性控制基础之上,涉及相关业务幂等控制处理,需要进行相关详细描述
5、接口方法确保不对外抛出异常,异常情况需要通过错误码通知客户端,处理失败也需要有返回值,返回值实现可参考EcBaseResult及其子类实现
POM依赖
9、接口返回值中的方法尽量只提供基本属性的get set方法,不要提供有业务规则含义的方法(因为业务逻辑的变化会要求客户端升级jar包版本)
10、操作类的接口务必考虑幂等性控制,因为网络重发,客户端异常等都可能会引起重复调用,严重的可能会引起资损
根据业务约定的部分唯一性字段,对多次请求的数据判断是否重复提交的判断依据,比如通过外部订单号outOrderNo做唯一性控制,在唯一性控制的基础上,对请求中的其他字段进行判断,
如果全部业务数据(或关键业务数据)和已经落库的数据一致,则请求一次和请求多次都不会对业务处理产生影响,返回结果不变,
如果outOrderNo关联的其他信息与系统已经持久化的数据不一致则提示XXX参数与原先的数据不一致。
11、接口命名统一以Facade结尾,个别的SPI接口可以使用别的结尾词以便更好地表达SPI的要求,SOFA框架系统对外接口统一存放在xxx-common-service-facade
这个bundle下
12、接口必须提供有效的监控日志,配置监控报警规则监控日志输出见日志规范
13、敏感信息:接口返回对象属性字段包含敏感信息,需要做好标识,进行相关提示避免客户端打印到日志中去
金额:接口返回对象属性涉及到金额,需要描述金额的单位以及对应的币种 统一使用支付宝金额类comiwalletbizcommonutilmoneyMoney
Money所在jar坐标
说白了就是详细的把服务器接口用文档描述清楚,比如用php,java等等写的函数,方法入口给外部可以调用的那种,用word文档或者其他形式将函数名字,请求类型,请求参数,返回数据等等都一一描述清楚,这样其他人就可以根据文档写代码了
0条评论