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

news2024/11/25 22:29:36

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.coloradmin.cn/o/765740.html

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

相关文章

UE学习记录02----UMG创建控件模板+事件分发器

官网4.27: 创建控件模板 | 虚幻引擎文档 (unrealengine.com) 使用UMG创建的每个 控件蓝图 都被视为 用户控件,其可在其他控件蓝图中重复使用和放置。 其视觉效果和脚本功能都将延续到该蓝图中。 利用某些蓝图脚本,可创建UI控件的运行方式或…

echarts——环形图

const value_ze 60 const value2_ze 30 var myChart echarts.init(document.getElementById(myChart)); var option {title: {text: 目标完成率,subtext: [{a|${value_ze}}, {b|%}].join(),itemGap: 10,textStyle: {fontSize: 14,color: #fff,fontWeight: 500},subtextStyl…

springboot拦截器无法进行属性注入

文章目录 问题描述问题原因问题解决解决方法一解决方法二 总结 问题描述 今天在使用拦截器的时候遇见了一个奇怪的错误,就是在对拦截器进行属性注入的时候为null,具体如下 运行代码出现空指针异常 就是注入的Gson为null,这个问题很奇怪&a…

STM32 HAL库定时器输入捕获SlaveMode脉宽测量

STM32 HAL库定时器输入捕获SlaveMode脉宽测量 SlaveMode模式简介 ✨SlaveMode复位模式:在发生一个触发输入事件时,计数器和它的预分频器能够重新被初始化;同时,如果TIMx_CR1寄存器的URS位为低,还会产生一个更新事件UEV…

SQLSERVER中exec 与 exec sp_executesql 的用法及比较

SQLSERVER 提供 exec 与 exec sp_executesql (2005版本开始)执行动态sql。 一、EXEC 命令有两种用法 1、执行存储过程 exec 存储过程 参数 值 --或 exec 存储过程 值 exec 存储过程 存储过程中的参数参数{接受参数返回值} outputCREATE PROC…

空气净化器触摸屏中应用的电容式触摸芯片

现在人们对于居住环境要求较高,许多家庭会选用空气净化器吸咐污物。那么空气净化器原理是什么?空气净化器工作原理分为两种: 被动式空气净化器原理:是用风机将空气抽入机器,通过内部的滤网过滤空气,起到过滤…

亚马逊气候友好碳中和认证

CLIMATE PLEDGE FRIENDLY AND CARBON NEUTRAL Climate Pledge Friendly气候友好认证,亚马逊推出的气候友好认证是一种自愿性,倡导性的认证。那么这个Climate Pledge Friendly是个什么样的认证,如何才能获得这个气候友好认证标签呢&#xff1…

使用onnx和onnxruntime完成模型部署

模型部署定义 深度学习模型部署是指训练好的模型在特定环境中运行的过程。 模型部署的流水线如下: 使用任意一种深度学习框架来定义网络结构并训练模型训练好的模型的网络结构和参数会被转换成一种只描述网络结构的中间表示(如,onnx、torch…

Shiro 初识

1,了解Shiro Shiro是一个安全框架,主要用于用户认证,访问授权,会话管理,数据加密 2,实践 2.1 创建文件 这个例子没有链接数据库, 所以需要在resources下创建文件shiro.ini shiro.ini内容&am…

Vant源码解析(三)van-stepper步进器

先说下自己的开发思路,然后在对照下vant组件的思路,来查找下自己的不足。 这个步进器有加和减的功能,还有输入的功能,限制最小和最大的功能。 我理解的Vant组件的思路 点击事件都是onTap,根据变量进行判断是加还是减,数…

vuecli5.x 配置图片输出为base64

解释:webpack的默认配置是小于一定的文件大小就要将图片转为base64, 所以尽量将这个阈值调大你的图片就可以转为base64; 当然这种做法不好, 会导致代码文件变大, 不过为了满足需求也没得办法。这年头大家都用 vite 了, 网上没有 vuecli5.x 这方面的记录, 写篇文章记…

腾讯内推 | 互联网大厂内推

分享 WLB、大厂内推,面经、热点新闻,可内推公司90,累计帮助6000 靠谱的内推君 专注于WLB、大厂精选内推,助力每位粉丝拿到满意的Offer! 公司简述 腾讯以技术丰富互联网用户的生活。通过通信及社交平台微信和 QQ 促…

单模光模块和多模光模块有何区别,如何选择?

随着数据中心和5G应用的高速发展,光模块渐渐被越来越多的人所熟知,也得到了广泛应用。我们都知道,光模块可以根据参数类型来区分,如我们经常提到的单模光模块和多模光模块。那你知道单模光模块和多模光模块中的单模和多模分别代表…

基于物联网、移动互联网、一物一码等技术开发的质量溯源系统源码

什么是溯源系统? 溯源系统是物联网、移动互联网、一物一码等技术的整合应用。在产品生产过程中在重要环节可采集产品数据信息并形成产品溯源档案。从而形成产品从原料、生产加工、质量检测、物流运输等环节的信息监控。 溯源系统技术架构 技术架构:spring bootmy…

服务器数据库的防护策略与360后缀勒索病毒解密方法

在当今数字化时代,服务器数据安全面临着越来越多的挑战。其中,勒索病毒攻击就是一种常见的网络威胁之一,最近,很多的公司服务器数据库遭到了360后缀勒索病毒攻击,导致许多重要数据无法读取,一旦企业的数据库…

vue3和tauri直接下载Binary 数组的二进制文件内容到本地

通过发送url请求,直接获取到一个文件的Binary 数组内容,然后通过tauri的api:writeBinaryFile保存文件到本地电脑。 发送请求的时候,要加上响应类型:responseType: ResponseType.Binary 然后等返回的响应内容&#xf…

权限系统就该这么设计,稳的一批!

对于后台管理系统来说,权限功能已经是必不可少的一部分了。如果你用过一些快速开发脚手架,你会发现很多都直接集成了权限功能。把权限功能做成一个通用功能,非常有利于代码的复用。今天就以我的mall电商实战项目为例,来聊聊权限系…

防止重复请求,防止重复点击,解决:使用分布式锁,redisson,setnx简单实例

防止重复请求,解决:使用分布式锁,redisson,简单实例 通常情况下:synchronize在单机下是可以的,在分布式下不适用,nginx做分发到了不同的服务器后,不同的jvm是锁不住的,这…

【C语言进阶篇】常见动态内存分配的这六个错误你必须避免!

🎬 鸽芷咕:个人主页 🔥 个人专栏:《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言💬 常见的动态内存错误1️⃣ 对NULL指针的解引用操作⌨️ 错误原因💻 解决方法&…

MonoDTR Monocular 3D Object Detection with Depth-Aware Transformer 论文学习

论文链接:MonoDTR: Monocular 3D Object Detection with Depth-Aware Transformer 1. 解决了什么问题? 单目 3D 目标检测对于自动驾驶很重要,也很有挑战性。 现有的一些方法通过深度预测网络得到深度信息,然后辅助 3D 检测&…