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

前言

为了在企业中能够更好的支持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管理作为中心的接口层,解耦了接口提供者与接口消费者,其概要架构如下图
在这里插入图片描述

REST API Unless

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

RESTGraphQLgRPCSOAP
Internal and External IntegrationInternal IntegrationInternal IntegrationInternal 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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 软件管理系统概要设计-史上最标准模板.docx是一份用于软件管理系统概要设计的模板文档。该概要设计旨在帮助软件开发团队在系统设计之初,明确系统的整体结构和功能,为后续详细设计和开发提供指导。 该模板包括以下几个主要部分: 1. 引言:介绍软件管理系统的背景和目的,定义系统的范围和目标,以及概要设计的编写目的和读者。 2. 总体设计:描述软件管理系统的总体结构和模块划分。通过图示或详细说明,展示主要模块之间的关系和交互方式,以及关键模块和功能。 3. 功能需求:列出软件管理系统的主要功能和子功能,通过用例图、功能列表或其他方式,详细描述每个功能模块的功能和输入输出。 4. 数据设计:定义软件管理系统的核心数据结构和数据库设计。包括实体关系图、数据字典以及数据流程图等,以便于开发人员理解和实现。 5. 接口设计:说明软件管理系统与外部系统的接口和通信方式。包括硬件接口、软件接口、API等。确保系统能够与其他系统之间进行正确的数据交换和功能调用。 6. 安全设计:考虑软件管理系统的安全性需求,包括身份认证、权限控制、数据加密等方面的设计。 7. 性能设计:描述软件管理系统的性能需求和设计方案。包括系统响应时间、并发用户数、服务器配置等要求。 8. 验证计划:制定软件管理系统概要设计的验证计划和方法。包括需求验证、功能验证和性能验证等方面。 通过按照该模板编写软件管理系统概要设计,可以使开发团队更好地理解系统需求,明确系统设计方向,减少后期开发过程中的变更和调整,提高开发效率和质量。同时,该模板也可以作为项目文档的一部分,为项目的持续开发和维护提供参考依据。 ### 回答2: 《软件管理系统概要设计-史上最标准模板.docx》是一份软件管理系统概要设计文档的标准模板。这份模板的目的是为软件管理系统的概要设计提供基本结构和指导。 该概要设计模板包含以下主要部分:介绍、需求概述、系统架构、功能模块、数据模型、界面设计、安全性、性能、可靠性、可维护性、限制和假设、适应性和可扩展性以及参考文献。 在介绍部分,会简要介绍该软件管理系统的背景、目的和重要性,以及该概要设计的作用和目标。 需求概述部分会详细列出该软件管理系统的功能需求、性能需求以及安全性需求等。 系统架构部分会描述整个软件管理系统的整体架构,包括系统的组成部分、层次结构、模块功能和相互关系等。 功能模块部分详细描述每个功能模块的功能和接口,以及模块之间的交互方式。 数据模型部分会介绍系统所需的数据模型,包括数据结构、数据流和数据关系等。 界面设计部分会展示软件管理系统的用户界面设计,包括界面布局、交互方式和用户操作流程等。 在安全性、性能、可靠性和可维护性部分,会讨论系统在这些方面的要求和设计考虑。 限制和假设部分会列出设计中的限制和假设条件,以确保设计的可行性和实施性。 适应性和可扩展性部分会讨论该软件管理系统的适应能力和可扩展性,以满足未来的需求和变化。 最后,参考文献部分会列出该概要设计所参考的相关文献和资料。 总之,《软件管理系统概要设计-史上最标准模板.docx》对于软件管理系统的概要设计提供了一个完整的指导框架,旨在帮助设计人员更好地进行系统设计和开发。 ### 回答3: 对于“软件管理系统概要设计-史上最标准模板.docx”,我们可以提供以下回答: “软件管理系统概要设计-史上最标准模板.docx”是一个软件管理系统的概要设计模板,旨在提供一个标准化的模板,帮助软件管理系统的设计者进行概要设计。 该概要设计模板首先包含了项目的基本信息,如项目名称、项目编号、作者等。接下来,模板会对软件管理系统的目标和功能进行详细描述,明确系统所要实现的目标以及提供的功能。这部分内容可以包括系统的总体结构和模块分析,以及各个模块的功能介绍。 在详细说明系统功能后,模板还会对系统的需求进行分析和概述。这包括对用户需求和运行环境的分析,以及系统的性能要求和安全要求等方面的概述。此外,模板还可能包含对系统的设计约束和假设的描述。 最后,该概要设计模板还会对系统的概要设计方案进行描述。这部分内容包括对系统的整体架构和模块设计的概述,以及对关键技术和实现方法的介绍。此外,模板还可能包含对系统的扩展性和可维护性的考虑,以及对开发计划和测试计划的初步安排。 总的来说,“软件管理系统概要设计-史上最标准模板.docx”提供了一个组织化、标准化的模板,可以帮助软件管理系统的设计者进行概要设计。通过使用该模板,设计者可以更好地规划系统的结构和功能,并确保系统符合用户需求和设计要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值