一、API接口的分类
1.网关API(接口) Gateway(网关) ---接口网关注意:没有界面
2.接口什么背景下产生:在面向服务架构和微服务背景下产生,目的是为了解耦,rpc远程调用中产生。
1.接口的分类
1.1 开发接口 ---其他机构合作伙伴进行调用(必须在外网访问),例如蚂蚁开发平台、微信公众号开发
需要通过appid+appsocet生成accessToken进行通讯,对接支付开发、微信开发。目的可以授权一些接口权限OAuth2.0协议方式
1.2 内部接口 ---一般只能在局域网中进行访问,服务与服务调用之间关系都在同一个微服务系统中,目的为了保护安全问题
二、如何设计一套API接口
考虑:接口权限(开发接口/内部接口)、考虑幂等性、安全性(Https)、防止篡改数据(验证签名)、使用网关拦截接口实现黑名单和白名单、接口使用http协议+json格式resful目的为了跨平台(http底层走的是sql的技术,转化为二进制)。
考虑高并发,对接口服务实现保护,服务降级,熔断,隔离之类,最后使用统一的API管理平台 swagger
三、网关
1.概念:相当于客户端请求统一先请求到网关服务器,在由网关服务器进行转发请求到实际服务地址;类似与Ngnix
2.作用:网关可以拦截客户端所有请求,对该请求进行权限控制、负载均衡、日志管理、接口调用监控等
3.过滤器与网关区别:过滤适合单个tomcat服务器进行拦截请求(例如只拦截会员服务),网关是拦截整个微服务请求
4.网关分类:分为内网网关(自己的微服务)和外网网关(开发平台)
5.Ngnix与Zuul区别