BTP Integration Suite学习笔记 - (Unit3) Developing with SAP Integration Suite

本文介绍了SAPAPIManagement的核心功能,包括API的开发、发布、分析和消费,以及API产品的创建和管理。重点讨论了API安全策略和日志监控的重要性,展示了如何使用预定义策略增强API的安全性和监控能力。
摘要由CSDN通过智能技术生成

BTP Integration Suite学习笔记 - (Unit1) Developing with SAP Integration Suite
BTP Integration Suite学习笔记 - (Unit2) Developing with SAP Integration Suite
带着一个问题去学:明明可以直接访问一个后端系统的OData服务,为什么还要再多绕一道CPI?

Unit3. API管理

在这里插入图片描述

3.1 SAP API 管理

SAP API Management是一个映射API整个生命周期的解决方案。

再具体一点,它分为:

  • Building APIs 开发构建API:
  • Publishing APIs 发布API:
    产品Product是一组API。它包含特定于业务的元数据,用于监视或分析。例如,所有与CRM相关的api都可以捆绑为一个CRM产品。与其单独发布api,不如将相关api捆绑在一起作为产品发布。在将所需的api包含到产品之后,将产品发布到Catalog,应用程序开发人员可以通过Catalog浏览产品。
  • Analyzing APIs 分析API:
    API Analytics服务器使用API的运行时数据来分析信息。运行时数据被收集、分析并显示为图表、标题和关键性能指标(kpi)。
  • Consuming APIs 消费API:
    API Business Hub Enterprise是一个应用程序,它为应用程序开发人员提供了一个使用API的公共平台。每个API Management客户都可以在云上使用自己的API Business Hub Enterprise应用程序。API Business Hub Enterprise为机载应用程序开发人员提供了探索和测试API、创建和订阅应用程序的功能。
  • Monetizing APIs API变现:
    SAP API Management为所有API提供商提供了货币化功能,以便通过使用API产生收益。
  • Discover API Packages 发现API:
    在API Management中,您可以在API Portal上的SAP Business Accelerator Hub中发现API Management平台支持的API包。
  • API Designer API设计器:
    使用API设计器为API建模。API设计器基于OpenAPI Specification (OAS)标准,这是一个开源协作项目。

API Management需要用户分配角色APIPortal.Administrator。角色具体查看

3.2 技术了解

先整体看下SAP API Management的组成
在这里插入图片描述

  • No. 1: API Provider - Summarizes many different sources
  • No. 2: API - The new API with URL (No. 4)
  • No. 3: API Designer - An openAPI definition
  • No. 4: The new API URL - Acts as proxy
  • No. 5: Policies - Edit the request and response message
  • No. 6: Product - Implementation of an API
  • No. 7: Application based on a product
  • No. 8: Additional services such as monitoring, testing, and more
  • No. 9: Entry in API Business HUB Enterprise.

后面会有章节详细说明每一个组件,但整体可以看出几点,

  • API Provider可以由4个源头

    1. 通过open connector接过来的第三方API
    2. 通过Cloud connector接过来OP的SAP On-Prem 后端API(ECC ,S/4 HANA, PI, PO 等等)
    3. Cloud Integration云集成 过来的OData 或 SOAP API
    4. Internet URL API
  • Consumer可以调用的点有两个,一个是调用API Proxy,一个是调用最终的Application

  • Policy是结合API Proxy使用的

也可以这么划分:
在这里插入图片描述
从使用者角色的角度看这几部分功能:
在这里插入图片描述
API Portal包括了:

在这里插入图片描述

3.3 创建API Provider

API Provider在架构中承担的角色:
在这里插入图片描述

API Provider定义了在想要访问的特定主机上运行的服务的连接详细信息。使用API Provider定义以下内容:

  • 希望应用程序访问的主机的详细信息。
  • 定义建立连接所需的任何进一步细节,例如代理设置。

API Provider可以由4个源头
1. 通过open connector接过来的第三方API
2. 通过Cloud connector接过来OP的SAP On-Prem 后端API(ECC ,S/4 HANA, PI, PO 等等)
3. Cloud Integration云集成 过来的OData 或 SOAP API
4. Internet URL API
在配置时每种类型需要配置的参数各不相同,具体参考

使用API Provider的好处:
在这里插入图片描述

  • 可以连接到不同的后端本地/云系统。
  • 发现服务/接口。
  • 简化内部部署连接。
  • 简化后端系统更改时的配置。

示例:
为了在ES5中使用GWSAMPLE_BASIC API,必须生成一个封装初始接口的代理。这个代理通常被称为API Provider。在组件图中,生成的连接和构件以红色突出显示。
在这里插入图片描述
配置过程很简单,跟着这个做就好。

注意创建API Provider之前记得设置一下API Virtual Host
在这里插入图片描述
在这里插入图片描述
值得一提的是,这个地址是一个catalog,它包含了很多个服务。在下面创建API时,如果使用根据API Provider方式创建,还会有一步选择具体服务的步骤。

3.4 创建API(Proxy)

原来叫API Proxy,是因为它充当实际资源API的代理,现在叫API,是相同的概念。
其实应用程序开发人员是可以直接使用相应的服务的,那为什么还要创建一个API代理呢,API Proxy可以掩盖想要公开的服务,API将一个公开可用的HTTP端点映射到后端服务。创建API代理可以让API Management处理保护、分析和监视服务所需的安全性和授权。这就是开头问题的答案,有了这个Proxy的掩护,我们可以用这个API在安全性和分析方面做更多。
在这里插入图片描述
在这里插入图片描述
从上面这幅图可以看出API的创建来源有5处

  1. 手工导入
  2. API Designer 画出来
  3. 根据API Proxy创建
  4. 根据URL创建
  5. 根据API Provider
示例1. Create from API Provider

在这里插入图片描述
示例是根据上一节的API Provider创建一个API, 过程中先选中API Rrovider,然后点击按钮’发现’,会将该catalog下的所有服务都列出来选择。
在这里插入图片描述
选择后会自动填充下面几个字段
在这里插入图片描述
可以注意到这里主机别名已经使用到的Virtual Host ‘cgdemo’。
创建完成后点击’部署’,部署后才可以进行测试。

示例2 Create from URL

下面是使用URL创建API的示例
在这里插入图片描述
这里使用百度地址填写URL
在这里插入图片描述
部署后生成的API地址,测试:
在这里插入图片描述

示例3 Create from API Proxy

在这里插入图片描述
注意这里服务类型只能是REST或是SOAP,即使原来的API是ODATA。
另外需要注意的是版本字段也是必输的。当接口发生变化时为了不影响原有接口,可以使用不同的版本,API的多个版本可以在运行时和设计时共存,版本指定后,这个API的名称后自动为会加版本为后缀。

API状态

可以在创建或更新API时设置API的状态:

状态描述
Alpha用于探索性目的的API版本
Beta不打算用于生产的API版本
Active用于生产使用的API版本
Deprecated当API被标记为已弃用时,鼓励客户使用后续API
DecommissionedAPI的一个版本,其中服务不再可用,并且不能有效地使用

当弃用或停用API时,必须提供弃用或停用日期,以及后续API。这可以是API门户中的另一个API,也可以是外部链接。只能在更新API时将API状态标记为DeprecatedDecommissioned,而不能在创建时将其标记为DeprecatedDecommissioned

这只是一个状态,用来区分和告知,并不会实际影响什么。

3.5 使用策略

什么是策略policy?
SAP API Management提供了通过使用策略定义API行为的功能。策略是在运行时执行特定功能的程序。它们提供了在API上添加通用功能的灵活性,而不必每次都单独编写代码。

策略提供了保护API、控制API流量和转换消息格式的特性。还可以通过添加脚本并将它们附加到策略来定制API的行为。

可以在request或response流上应用策略。还可以指定它是否适用于proxy endpoint或target endpoint。我们可以使用SAP Business Accelerator Hub中预定义的策略模版,也可以使用策略编辑器中预定义的策略。

API Management支持多种策略类型

  • Access Control
  • Access Entity
  • Assign Message
  • Basic Authentication
  • Extract variables
  • Invalidate Cache
  • JavaScript
  • JSON to XML
  • Key Value Map Operations
  • Lookup Cache
  • Message Logging Policy
  • OAuth v2.0
  • OAuth v2.0 GET
  • OAuth v2.0 SET
  • Populate Cache
  • Python Script
  • Quota
  • Raise Fault
  • Reset Quota
  • Service Callout
  • Spike Arrest
  • SAML Assertion Policy
  • SOAP Message Validation Policy
  • Verify API Key
  • XML to JSON
  • XSL Transform
  • XML Threat Protection
  • Regular Expression Protection
  • JSON Threat Protection
  • Response Cache
  • Statistics Collector Policy

再看一下策略生效的阶段:
在这里插入图片描述
这里要先搞清楚接个概念:
在这里插入图片描述

  • ProxyEndpoint
    传入请求:从外部源(用户应用程序、B2B 资源等)到驻留在 SAP API 管理中的 API Proxy 的请求。
    传出响应:从驻留在 SAP API 管理上的 API Proxy发回到原始请求源的数据请求。
  • Target endpoint
    传入请求:从 SAP API 管理上的 API Proxy到目标终结点的请求。
    传出响应:从目标终结点到 SAP API 管理上的 API Proxy的数据响应,以响应从 API Proxy收到的请求。

在查看API时可以看到Proxy EndPoint和Target EndPoint的信息:
在这里插入图片描述

解释最清楚的一张图:

在这里插入图片描述

3.5.1 安全策略

SAP BTP, API Management基于开放Web应用程序安全项目(OWASP) API安全最佳实践提供了许多开箱即用的API安全策略,还可以根据企业需求进行定制。
有一个博客系列展示SAP BTP API管理的安全策略,保护企业API,这些API安全最佳实践包括身份验证和授权、流量管理、检测云威胁/网络攻击的策略:
在这里插入图片描述

在这里插入图片描述

3.5.2 日志和监控策略

消息日志记录策略允许将系统日志消息发送到第三方日志管理服务,例如 Splunk、SumoLogic、Loggly 或类似的日志管理服务。参考

3.5.3 使用预定义的策略

SAP Business Accelerator Hub里已经有需要定义好的策略模版可以使用,
在这里插入图片描述
在Policy Template下已经有二十多个模版可以参考使用。
在这里插入图片描述
可以方便的进行下载和导入。

示例:给ES5服务添加基本认证
在这里插入图片描述
这个示例实施主要是两步:

  1. 在TargetEndpoint的传入请求的PostFlow这个点上增加一个类型为 Assign Message的策略,这个策略作用是定义两个变量request.header.usernamerequest.header.password并且赋了值。
    在这里插入图片描述
    在这里插入图片描述

  2. 依然是在TargetEndpoint的传入请求的PostFlow这个点上增加一个类型为Basic Authentication的策略
    在这里插入图片描述
    在这里插入图片描述
    最终的效果就是 个API可以直接访问而不再需要输入用户名密码
    在这里插入图片描述

3.6 修改API

3.6.1 Overview

在这里插入图片描述
如果把API Export出来的话结构是这样的:
在这里插入图片描述

3.6.2 Proxy EndPoint

Route路由
Proxy EndPoint可以通过Route路由连接到一个或多个Target EndPoint。它根据Target EndPoint配置确定要调用哪个Target EndPoint
在这里插入图片描述
当有多个目标端点时,可以在路由这里实现一些规则,请求会转发到满足规则的指定的目标端点。
空路由意味着没有定义Target EndPoint。当不想将请求消息转发到任何Target EndPoint时,可以定义这样的路由。例如,生成OAuth令牌的流。上图并不是空路由,它是一个default默认路由,当只有一个Target EndPoint时可以使用默认路由。
有关动态路由

故障规则Fault Rule
故障规则是当API代理为来自应用程序的请求提供服务时,出现错误时如何处理。例如,在与后端服务通信时可能遇到网络问题,应用程序可能提供过期的凭据,请求消息可能格式不正确等等。在这种情况下,以定制的方式处理这些错误就可以比较友好。当API代理遇到错误时,默认行为是从正常处理管道退出并进入错误流。此错误流绕过任何剩余的处理步骤和策略。API平台允许通过定义故障规则来定制异常处理。故障规则可以附加到代理端点目标端点路由规则上。错误规则是一个XML配置元素,它指定:根据预定义的故障分类、子分类或故障名称对故障进行分类的条件定义FaultRule行为的一个或多个策略。

3.6.3 Target EndPoint

在这里插入图片描述

3.6.4 Resource

在这里插入图片描述
在这里插入图片描述
这里用Swagger UI显示所有可能的资源路径和REST操作(GET、PUT、DELETE…)以及所有必要的参数。它通常是自动生成的,但在为SOAP和REST创建API时,这个API资源不会自动生成,需要手工添加。手工即使用OpenAPI来编写资源的详细情况。openAPI规范说明更多信息
该描述基于openAPI规范。openAPI规范的可视化是通过swagger UI实现的。swagger Ul是一个开源的JavaScript框架,使api具体化。

右上角菜单,可以直观看出功能:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • No.1 以YAML或JSON格式导入openAPI规范
  • No.2 以YAML或JSON格式导出openAPI规范
  • No.3 不同的格式进行粘贴(RAML, Data, JSON)
  • No.4 生成服务器存根,生成不同语言和框架的服务器实现(Node.js, Java -Spring, Java EE)

3.7 创建产品

SAP API Management中的产品Product是什么?
产品Product是出现在SAP API Business Hub Enterprise门户上的工件。使用自己的URL也可以访问SAP API Business Hub Enterprise门户。通过界面右上角的导航访问。
在这里插入图片描述
如果没有这个按钮就是缺少权限:
AuthGroup.API.Admin
AuthGroup.API.ApplicationDeveloper

在这里插入图片描述
在这里插入图片描述

3.8 日志记录和监控

健康度监控
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值