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

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 日志记录和监控

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/27546.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Servlet 生命周期

文章目录 Servlet 生命周期主要有三个方法● 示意图● 初始化阶段● 处理浏览器请求阶段(service 方法)● 终止阶段 destory 方法(体现 Servlet 完整的生命周期)● 代码演示 Servlet 生命周期 主要有三个方法 ​ 1. init()初始化阶段 ​ 2. service()处理浏览器请求阶段 ​…

文心一言 VS 讯飞星火 VS chatgpt (60)-- 算法导论6.4 4题

文心一言 VS 讯飞星火 VS chatgpt (60)-- 算法导论6.4 4题 四、证明:在最坏情况下,HEAPSORT 的时间复杂度是Ω (nlgn)。 文心一言: 要证明在最坏情况下,HEAPSORT 的时间复杂度是 Ω(n log n)&#xff0c…

DKN和KGC阅读

1. DKN 作者将外部知识图包含的知识融入新闻嵌入。 (1)将新闻标题单词词嵌入,单词链接的实体嵌入,以及实体的上下文嵌入(邻居实体嵌入的平均)建模为CNN输入的三个通道。 (2)然后使用KCNN模型&#xff0c…

大数据第一步-Mac安装Hadoop3

1.安装工作 1.1 准备工作 前提是把jJDK8安装好,hadoop3.x最低需要jdk8。 然后打开共享把远程登陆打开,不打开说是后面会报错, 到终端输入命令:ssh localhost 生成新的keygen否则后面会报错 Permission denied 命令:…

数学建模-拟合算法

这里的线性函数指的是参数为线性,而不是变量为线性。 yabx^2是线性的 用的比较多的是多项式拟合和自己定义的 拓展资料:工具箱曲线拟合类型评价解释 文件-导出代码 自动生成的代码修改图名和标签 如果不收敛,自己要修改初始值&#xf…

Python(Conda)环境迁移(从win10到macos12.5)笔记

文章目录 背景环境 1、通过conda迁移2、通过python迁移3、最后(逐一安装) 背景环境 win10是以前安装的conda和py。目前需要导出的环境的版本为py3.10.4。macos是重新安装的conda,目前有的环境是py3.11.4。我是先进conda用刚安装好的base创建…

vulnhub靶场noob:1

靶机下载地址:Noob: 1 ~ VulnHub Arp发现主机 arp-scan -l 扫描端口 nmap --min-rate 10000 -p- 192.168.21.132 扫描端口的服务版本号以及操作系统 nmap -sV -sT -sC -O -p21,80 192.168.21.132 可以看到ftp里面有文件,web是php 扫描基础漏洞 nma…

C++ cin

cin 内容来自《C Primer》 cin使用>>运算符从输入流中抽取字符 int carrots;cin >> carrots;如下的例子&#xff0c;用户输入的字符串有空格 #include <iostream>int main() {using namespace std;const int ArSize 20;char name[ArSize]; //用户名char …

【Linux】网络基础之UDP协议

目录 &#x1f308;前言&#x1f338;1、传输层&#x1f33a;2、重谈端口号&#x1f368;2.1、端口号范围划分&#x1f367;2.2、认识知名端口号 &#x1f340;3、UDP协议&#x1f368;3.1、UDP协议报文结构&#x1f369;3.2、UDP协议的特点&#x1f36a;3.3、基于UDP的应用层协…

linux -rw-r--r-x的含义

-rw-r--r-x的含义 权限显示位一共为10位&#xff0c;分为四段&#xff0c;从第2位算起&#xff0c;每3个1组 -rw-r--r-x-表示为普通文件文件所属用户拥有的权限rw-&#xff1a;426该用户所属组拥有的权限r--&#xff1a;4其他用户拥有的权限r-x&#xff1a;415 操作英文对应数…

生成式AI时代,亚马逊云科技致力推动技术的普惠,让更多企业受益

当谈及AIGC时&#xff0c; 我们该谈些什么&#xff1f; 生成式AI技术与应用的不断发展&#xff0c;为各个行业都注入了全新的机会与活力。AIGC成为了今年最为激动人心的技术话题。亚马逊云科技也一马当先&#xff0c;在6月27-28日&#xff0c;2023亚马逊云科技中国峰会上分享…

软件测试项目经验重要吗?

目前从行业薪资排名看&#xff0c;IT行业是我们普通人能够接触到的高薪行业&#xff0c;像金融、银行和投行等高薪职位&#xff0c;张雪峰老师在他的视频中分析过&#xff0c;不是一般人可以拿捏的。IT行业的大部分岗位需要专业的技能&#xff0c;留给我们这些非计算机专业科班…