使用Spring Cloud Gateway网关设计开放平台
什么是开放平台 企业需要把自己的服务通过接口的形式对外提供,提供接口的平台称之为开放平台。比如 支付宝开放平台 , 淘宝开放平台 。 调用接口那一方一般称之为ISV,独立软体开发商(independent software vendor),开放平台这一方称之为ISP,网络服务提供者(Internet Service Provider)。通常情况下需要为ISV分配一个appKey和appSecret,可以简单的理解为用户名密码,有了这个才能正常调用开放平台接口。 为了保证请求参数的合法性,客户端需要生成一个签名串,然后开放平台需要校验这个签名串。ISV可以通过appKey和AppSecret来生成签名串,这样就能保证客户端请求是合法的,服务端需要校验签名串是否合法,appKey是否合法,这里开放平台会提供一套签名算法,常见的有: 支付宝开放平台签名算法 如何设计一个开放平台 开放平台的一个重要部分就是鉴权,鉴权功能和具体的业务无关,可以单独拿出来做,如果是单体应用的话可以把这部分操作写在一个Controller中。如果是微服务体系的话把鉴权部分放在网关是一个不错的选择,因为网关是一个统一入口,在入口处做好鉴权,后续的微服务不需要再做鉴权处理了,只需实现自己的业务逻辑即可。 在Spring Cloud微服务体系当中,充当网关的角色常见有两个,一个是Zuul,另一个是Spring