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.mzph.cn/news/4804.shtml

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

相关文章

Linux5.16 Ceph集群

文章目录 计算机系统5G云计算第四章 LINUX Ceph集群一、Ceph1.存储基础1)单机存储设备2)单机存储的问题3)商业存储解决方案4)分布式存储(软件定义的存储 SDS)5)分布式存储的类型 2.Ceph 简介3.C…

获得servlet相关API,获得请求头和cookie-spring23

后台能够成功打印 如何获得请求头 如何获得cookie 获取浏览器信息 把network下user Agent的值赋给他 这个值可以直接赋给Cookie 就是这个cookie 把cookie的值赋值给一边JasonId, 这里面的Value代表着名字,名字是cookie后面那一块:

nginx推流环境搭建

目录 1、创建安装文件夹2、安装编译 nginx 所需要的库3、下载 nginx-1.21.6.tar.gz下载 nginx-rtmp-module4、解压解压nginx文件解压rtmp模块5、编译6、安装7、启动nginx,检测nginx是否能成功运行8、配置nginx使用RTMP9、重启nginx服务器1、创建安装文件夹 cd ~ mkdir nginx …

Comparator.comparing()实现中文排序及空指针处理

一、 Comparator.comparing()的用法请详见以下上一篇文章的汇总介绍。 Comparator用法_乞力马扎罗の黎明的博客-CSDN博客 二、应用示例: 1、中文排序、空值处理 Collator instance Collator.getInstance(Locale.CHINA); checkItemVoList.stream().sorted(Compar…

每日科技分享-POE新增文件和链接发送功能

POE推出新功能 注意POE需要魔法上午才能进去。 实测 实测可以发送论文给chatgpt,然后和AI进行共享的对话。 POE网站链接: 也可以发送链接,实测了一下,似乎有时候并不准确,我发送了关于分层强化的文章,但是…

<数据结构>NO11.归并排序|递归|非递归|优化

文章目录 归并排序递归写法非递归写法修正方案1.归并一段拷贝一段修正方案2.修正区间 算法优化算法分析 归并排序的应用外排序和内排序 归并排序 递归写法 思路: 如果给出两个有序数组,我们很容易可以将它们合并为一个有序数组。因此当给出一个无序数组时&#xf…

华为无线ac+ap旁挂二层组网常用配置案例

AC控制器理解配置步骤: capwap source interface Vlanif 100 //源IP回包地址 wlan ssid-profile name test //新建个模版名称为test ssid test //wifi名称 wlan security-profile name test //建立安全模版也叫test security wpa-wpa2 psk pass-phrase admin123 a…

linux 安装 cuda

需求: inux 下安装 cuda 进程: 先查看一下系统版本 uname -a查看能支持什么版本的cudacuda toolkit 下载 wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.run sudo sh cuda_11.1.0_4…

API 接口是什么?怎么对接 API?

一、API接口是什么? API接口即应用编程接口,是一些预先定义的函数,可以提供应用程序与开发人员基于某软件或硬件以访问一组例程的能力。简单来说,API接口相当于信息的桥梁,它可以让不同平台、应用程序或系统共享数据&…

对Element DatePicker时间组件的封装,时间组件开始时间和结束时间绑定

背景 我们时常有时间范围选择,需要选择一个开始时间和一个结束时间给后端,但我们给后端的是两个字段, 分别是开始时间和结束时间,现在使用element绑定的值是一个数组,我们还要来回处理,很麻烦列表也的查询…

JAVA集成国密SM2

JAVA集成国密SM2加解密 一、pom配置二、代码集成2.1、目录结构2.2、源码2.3、测试 三、相关链接 国密算法概述:https://blog.csdn.net/qq_38254635/article/details/131801527 SM2椭圆曲线公钥密码算法 为非对称加密,基于ECC。该算法已公开。由于该算法…

react使用SVGA特效 常用api

下载插件 npm install svgaplayerweb --save react中代码 import React, { useEffect } from react; import SVGA from svgaplayerweb const Svga () > {const bofang () > {var player new SVGA.Player(#demoCanvas);//创建实例var parser new SVGA.Parser(#demo…

centos7安装 mongodb

一、rpm安装 1.1、配置MongoDB Enterprise的yum 源文件 [mongodb-enterprise] nameMongoDB Enterprise Repository baseurlhttps://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/3.4/$basearch/ gpgcheck1 enabled1 gpgkeyhttps://www.mongodb.org/static/pgp…

【Maven三】——maven生命周期和插件

系列文章目录 Maven之POM介绍 maven命令上传jar包到nexus 【Maven二】——maven仓库 maven生命周期和插件 系列文章目录前言一、什么是生命周期&why1.三套生命周期2.clean生命周期3.default生命周期4.site生命周期5.命令行与生命周期 二、插件目标三、插件绑定1.内置绑定2…

libevent:windows环境配置+QT使用

目录 libevent是什么 编译 QT使用 测试代码 libevent是什么 Fast portable non-blocking network programming with Libevent http://www.wangafu.net/~nickm/libevent-book/TOC.html 这篇文档讲的很清楚,尤其是Chapter 1: A tiny introduction to asynchro…

matlab入门

命名规则: clc:清除命令行的所有命令 clear all:清除所有工作区的内容 注释:两个% 空格 %% matlab的数据类型 1、数字 3 3 * 5 3 / 5 3 5 3 - 52、字符与字符串 s a %% 求s的ascill码 abs(s) char(97) num2str(65) str I…

家政小程序开发-H5+小程序

移动互联网的发展,微信小程序逐渐成为商家拓展线上业务的重要手段。家政服务作为日常生活中不可或缺的一部分,也开始尝试通过小程序来提高服务质量和效率。 下面是一篇关于家政小程序开发的H5小程序的文章,希望对您有所帮助。 家政服…

Redis进阶底层原理- 缓冲区

Redis中使用了很多缓冲区,在redis各个环节起到了非常核心的作用。下面来一一介绍一下: 输入输出缓冲区(客户端缓冲区) Redis中的输入输出缓冲区是为了平衡客户端发送命令和服务端处理命令的速度差异,如果客户端发送指…

一本通1910:【00NOIP普及组】计算器的改良题解

今天是编程集训的第二天,也是我来到CSDN整整1年。感谢所有阅读过我的文章的人,谢谢。 今天的比赛难度略低于昨天,但这道题也卡了我好久。 进入正题 题目: 题目描述: NCL是一家专门从事计算器改良与升级的实验室&a…

手把手带你实现ChatGLM2-6B的P-Tuning微调

参考文献:chatglm2ptuning 注意问题1:AttributeError: ‘Seq2SeqTrainer’ object has no attribute is_deepspeed_enabl torch.distributed.elastic.multiprocessing.errors.ChildFailedError: 可能是版本太高,可以参考chatglm2的环境