API管理-架构-1-概要设计

API管理-架构-概要设计

  • 前言
  • API 为中心的架构
    • REST API Unless
      • Streaming API
    • 微服务与API
    • API分类
    • API分层
  • API平台
  • API安全
    • 一些必要点
  • Reference

前言

为了在企业中能够更好的支持Cloud, Mobile, Big Data,成功的关键在于能够 安全的, 可靠的,一致的发布web services. REST API是目前广泛使用的web service,WEB API为底层的应用与数据提供与发布web-enabled 接口,它的特点是能够直接简单的访问应用功能与数据;并且解耦不同的IT服务,从而IT服务提供者能够独立的提供IT服务,支持application-to-application的集成模式。

API First策略意味着所有的集成场景中首先考虑API集成的方式,甚至在应用没有开发的时候就需要考虑其可以提供的API。将API与底层的应用分开来考虑,将API作为一个产品,从而能够更大程度的复用API。

API管理提供了API发布,API发现,API网关,API运维等功能。

API 为中心的架构

在API为中心的架构中,API管理作为中心的接口层,解耦了接口提供者与接口消费者,其概要架构如下图
API管理-架构-1-概要设计_第1张图片

REST API Unless

其他的技术,例如GraphQL, gRPC , SOAP在一些特定场景下可以满足特定的需求。

REST GraphQL gRPC SOAP
Internal and External Integration Internal Integration Internal Integration Internal Integration
需要灵活、复杂的数据结构 在高性能的场景中(REST与JSON的latency不能满足的情况下) 旧系统提供的接口
需要高频率的API调用 可以使用REST包装供外部调用 只用于系统API的层级

Streaming API

Streaming API能够实时将数据传输给客户端,与一般REST API的区别在于Streaming API 使用HTTP长连接,并将数据主动推送到客户端. 在服务端持续的产生数据流的场景中,能够极大的降低网络延迟。
通常Streaming API使用publish/subscribe模式。

微服务与API

微服务架构中每个微服务只提供其一套服务 - It does one thing and it does it well.

微服务的特征包括自治性与隔离性(autonomous and isolated), 也就是说微服务本身是 独立的功能单元, 微服务之间是松耦合的,各个微服务都是独立设计、开发、测试和发布的。 当需要变更的时候,只有影响到的微服务需要devops的自动化部署管道,从而也简化了系统更新的过程.

由于上述的可复用性,某个微服务可以被数个其他服务所调用,所以微服务还应具有按需伸缩的特性。

API分类

在企业应用中,可以根据数据的分类与API的使用范围(企业内部还是外部)来做API的分类。 例如

  • Public API only expose unrestricted information
  • Partner API may access restricted information
  • Internal API
  • Private API

API分层

API分层的主要目的是增加API的可重用性和灵活性,从上至下分为以下三层

  1. 访问层 UI and presentation specific logic
  2. 业务层API Orchestration and process triggers
  3. 系统层API 每一个业务系统的API

API平台

所以,发布了API之后就可以开始集成工作,然后就没有问题了,是这样吗?当然不是,还需要考虑安全与威胁,认证与授权,可用性,监控等才是一个完整的API产品。

API平台是管理API的中间件,应当具备以下功能:

  • API Management
    • API life cycle management
    • API Developer Portal
    • API Proxy
    • Policy Management
    • Mediation,format mediation and protocol mediation
  • Operations
    • Security
    • Monitoring
    • Report&Analysis
  • Messaging
    • Orchestration
    • Data Transformation
    • Message Routing
    • Adapters/Connectors

API安全

API安全是最被忽视的一层,但是必须重视

一些必要点

  • API设计阶段就应该开始Risk Assessment
  • 所有的API必须配置默认的最小安全策略集,包括
    • Https (TLS1.2 or later)
    • IP White/Black List
    • Authentication and Authorization
      • API key Security
      • Basic Authentication
      • OAuth 2.0
      • Certificate based authentication
    • Restrict http methods
    • Input validation
    • Error logging
    • Audit logs
    • Spike Arrest
    • Quota
    • JSON Threat mitigation
    • XML threat detection.
  • API 发布需要IT安全部门的审批
  • API monitoring是必要的
  • 需要Web 防火墙来支持DDOS prevention, threat mitigation等

Reference

Web Token

你可能感兴趣的:(API设计与管理,api)