SAP Ariba API - 开发者门户和网关的常见问题和最佳实践

486 阅读6分钟

在这篇博客中,我将讨论SAP Ariba API开发者门户和网关的最佳实践和常见问题。我将简要地列出SAP Ariba开发者门户的基本概况,并列出几个需要考虑的关键过程,以避免与SAP Ariba开发者门户和API网关本身有关的常见API问题。

我将把它分为两个部分。开发者门户和API网关。

开发者门户。

  • 截至2021年10月,有几个SAP Ariba开发者门户网站,按地区划分。美国、欧洲、俄罗斯、中国、沙特阿拉伯王国、阿拉伯联合酋长国、澳大利亚和日本。客户的访问将取决于要使用的API和客户领域所在的地方。
  • Ariba网络的API和CIG只能从美国的开发者门户获得。
  • 客户的访问权是通过注册各自的门户来获得的,客户在开发者门户中被归类为组织。在客户组织中,有两种类型的用户。管理员和开发者用户。客户组织必须至少有一个管理员用户,但允许额外的管理员和开发者用户。通常情况下,指定支持联系人(DSC)将被分配到管理员用户的角色。
  • 客户组织的管理员角色是维护其组织的用户,同时通过向SAP Ariba提交API应用进行审批,最终确定来自开发者用户的任何API应用请求,并在批准后,生成API消费的客户秘密。管理员用户也可以删除客户组织内的现有应用。
  • Ariba网络API通常需要ANID,API的使用将涉及Ariba网络管理页面的配置。与特定领域相关的API将被自动批准或由API支持团队启用。有些需要由客户领域管理员通过智能配置管理器(ICM)进行配置。 在申请特定的API之前,客户组织必须在开发者门户中列出他们的有效领域,并有适当的名称和ANID。

开发者门户网站上的常见问题。

**问:**我可以聘请外部顾问来管理我的组织/应用程序吗?
**答:**最初,只有指定的支持联系人(DSC)可以被设置为客户组织的管理员用户。管理员设置好后,他们可以邀请成员加入客户组织,然后指定新成员成为客户组织的管理员。这个决定是由客户组织自行决定的,而不是由SAP Ariba决定的。组织内的非管理员用户(开发人员)只能创建API应用程序,并请求该应用程序用于哪个API。 诸如IP白名单、申请API审批和秘密密钥生成等活动必须由客户组织的管理员用户完成。

**问:**我只是作为合作伙伴或顾问在测试API,客户的境界可以添加到我的组织中吗?
**答:**不可以。API应用必须在客户的组织内创建。该组织的管理员用户可以将该应用的访问权分享给作为其合作伙伴或顾问的你。根据他们的判断,他们可以把你加入他们的组织,作为普通成员、管理员,或者只是与你分享应用程序的秘钥。这是因为客户可以控制对他们领域的API访问,无论是他们的测试、生产还是开发领域。

**问:**我们能否提高特定应用程序的 API 调用限制?
**答:**SAP Ariba 客户支持团队没有能力提高 API 或应用程序的速率限制。如果要求提高费率限制,请按照流程向您的客户主管提交请求及理由。

**问:**是否应该为测试和生产创建不同的API应用程序?
**答:**是的。我们有一个政策--一个领域和一个API的应用程序,其中包括测试领域。每个应用程序都是使用应用程序的apiKey映射到一个特定的API。因此,为了防止授权错误,为不同的API使用不同的应用程序。

**问:**我在测试领域完成了我的开发,我可以为我的开发领域迁移API应用程序吗?
**答:**不可以。必须为你的生产领域创建单独的API应用程序。对你的开发代码的唯一改变是API调用的头部分的apiKey和用于生成访问令牌的密钥。在报告API中,如果被访问的视图需要一个自定义字段,则需要重新创建自定义视图。这是因为自定义字段的名称在测试领域和生产领域之间是不同的。

**问:**当开发者门户上的证书更新时,我们是否受到影响?
**答:**根据您消费API的设置,开发者门户上的证书更新可能会影响您消费SAP Ariba API的能力。
新证书应在到期日之前安装。在更新前一周,连接到Connect Portal时将显示证书更新通知,并提供证书的链接。

API网关。

  • 访问令牌验证
    确保有一个处理访问令牌验证的过程,这包括一个利用刷新令牌生成新的访问令牌的过程,以及一个存储时间戳变量的过程,以检查任何给定的令牌是否需要在对最终终端进行下一次/后续的API调用之前被刷新。这两个过程将避免401错误--未经授权的访问。
  • 速率限制验证
    应该制定一个程序,将任何给定的API终端的可用速率限制和剩余值(每秒、每分钟、每小时和每一天)与正在进行的最后一次API调用的时间戳一起存储在变量中。⚡如果您与其他团队共享apiKey,使用相同apiKey调用API端点的每个人也必须更新这些变量,否则您存储的变量不能反映SAP Ariba API Gateway中API端点的真正剩余速率限制。
  • 报头大小限制
    从2021年10月起,SAP Ariba API Gateway将只接受请求报头中最大4KB或32KB的数据。遵守这一点将避免502错误 - 坏的网关。查看此博客。如何防止SAP Ariba APIs出现502错误,以及追踪SAP Cloud Integration中集成流程的执行情况的帮助手册。

关于API网关的常见问题。

**问:**为什么我得到403错误。拒绝访问。请联系您的组织管理员?
**答:**返回这个错误是因为应用程序使用白名单IP功能,该功能将阻止应用程序的使用,除非它来自指定的IP地址。你的组织管理员必须在白名单IP功能上添加适当的IP地址。

**问:**为什么我得到400错误--授予类型不应该是空的错误?
**答:**这个错误是由于缺少openapi_2lo的授予类型值,这是必需的。这个值应该在请求的正文中写出来:-data-urlencode 'grant_type=openapi_2lo'

**问:**为什么我得到错误。你不能消费这个服务?
**答:**这个错误的原因是API应用程序试图访问应用程序被请求的API之外的API端点(s)。换句话说,错误的apiKey。