使用SAP API portal进行SAP SuccessFactors的API测试

简介:

登录api.sap.com, 根据关键字SuccessFactors找到对应的API目录:

找到foundation/Platform级别的API,进入之后,

选择User Management:

点击Logon,以使用API控制台自带的控制功能:

点击Try Out, 就可以像使用postman一样,使用这个API控制台自带的测试功能了:

$filter string里可以测试这个OData API的filter操作:

从测试结果可以发现,firstName为Sami的user,在这个sandbox系统里的user ID为50004:


点击Show API Key,拿到一个API key,这样就能在该API控制台以外的地方调用API.


点击Code Snipet,可以把自动生成的API调用代码复制下来,直接粘贴到应用里使用。

点击Curl,获得使用工具curl进行测试的命令行:

curl --request GET --url "https://sandbox.api.sap.com/successfactors/odata/v2/User" --header "APIKey: e9ZLBOfexchhHN" --header "Accept: application/json" --header "Content-Type: application/json"

curl --request GET --url "https://sandbox.api.sap.com/successfactors/odata/v2/User" --header "APIKey: e9ZLBOkMUexchhHN" --header "Accept: application/json" --header "Content-Type: application/json"

API endpoint for API sandbox

Optional query parameters: "$top" , "$skip"

To view the complete list of query parameters, see its API definition.

Available API Endpoints

https://api2.successfactors.eu/odata/v2

https://apisalesdemo2.successfactors.eu/odata/v2

https://api2preview.sapsf.eu/odata/v2

https://api4.successfactors.com/odata/v2

https://apisalesdemo4.successfactors.com/odata/v2

https://api4preview.sapsf.com/odata/v2

https://api5.successfactors.eu/odata/v2

https://api8.successfactors.com/odata/v2

https://apisalesdemo8.successfactors.com/odata/v2

https://api8preview.sapsf.com/odata/v2

https://api10.successfactors.com/odata/v2

https://api10preview.sapsf.com/odata/v2

https://api012.successfactors.eu/odata/v2

https://apirot.successfactors.eu/odata/v2

https://api12preview.sapsf.eu/odata/v2

https://api15.sapsf.cn/odata/v2

https://api16.sapsf.eu/odata/v2

https://api17preview.sapsf.com/odata/v2

https://api17.sapsf.com/odata/v2

https://api18preview.sapsf.com/odata/v2

https://api18.sapsf.com/odata/v2

得到的结果:



也可以通过select操作,让API只返回firstName和lastName两个字段的值:
curl --request GET --url "https://sandbox.api.sap.com/successfactors/odata/v2/
User,UserPermissions/User?%24top-5&%24select=firstName%2ClastName" --header 'APIKey: e9ZLBOXsAfkMUexchhHN' --header 'Accept: application/ison' --header "Content-Type: application/ison"

curl --request GET --url "https://sandbox.api.sap.com/successfactors/odata/v2/User,UserPermissions/User?%24top-5&%24select=firstName%2ClastName" --header "APIKey: e9ZibykWXsAfkMUexchhHN" --header "Accept: application/json" --header "Content-Type: application/json"

在SAP UI5应用里消费API的代码:

//Create JSON Model with URL
var oModel = new sap.ui.model.json.JSONModel();

//API Key for API Sandbox
var sHeaders = {"Content-Type":"application/json","Accept":"application/json","APIKey":"e9ZLBOfIplCOnibykWXsAfkMUexchhHN"};

//Available Security Schemes for productive API Endpoints
//Basic Authentication

//Basic Auth : provide username:password in Base64 encoded in Authorization header

//sending request
//API endpoint for API sandbox 
oModel.loadData("https://sandbox.api.sap.com/successfactors/odata/v2/User", null, true, "GET", null, false, sHeaders);
//Optional query parameters: "$top" , "$skip"
//To view the complete list of query parameters, see its API definition.

//Available API Endpoints
//https://api2.successfactors.eu/odata/v2
//https://apisalesdemo2.successfactors.eu/odata/v2
//https://api2preview.sapsf.eu/odata/v2
//https://api4.successfactors.com/odata/v2
//https://apisalesdemo4.successfactors.com/odata/v2
//https://api4preview.sapsf.com/odata/v2
//https://api5.successfactors.eu/odata/v2
//https://api8.successfactors.com/odata/v2
//https://apisalesdemo8.successfactors.com/odata/v2
//https://api8preview.sapsf.com/odata/v2
//https://api10.successfactors.com/odata/v2
//https://api10preview.sapsf.com/odata/v2
//https://api012.successfactors.eu/odata/v2
//https://apirot.successfactors.eu/odata/v2
//https://api12preview.sapsf.eu/odata/v2
//https://api15.sapsf.cn/odata/v2
//https://api16.sapsf.eu/odata/v2
//https://api17preview.sapsf.com/odata/v2
//https://api17.sapsf.com/odata/v2
//https://api18preview.sapsf.com/odata/v2
//https://api18.sapsf.com/odata/v2

//You can assign the created data model to a View and UI5 controls can be bound to it. Please refer documentation available at the below link for more information.
//https://sapui5.hana.ondemand.com/#docs/guide/96804e3315ff440aa0a50fd290805116.html#loio96804e3315ff440aa0a50fd290805116

//The below code snippet for printing on the console is for testing/demonstration purpose only. This must not be done in real UI5 applications.
oModel.attachRequestCompleted(function(oEvent){
    var oData = oEvent.getSource().oData;
    console.log(oData);
});

在SAP云平台ABAP编程环境里消费API的ABAP代码:


TRY.
"create http destination by url; API endpoint for API sandbox 
DATA(lo_http_destination) = 
     cl_http_destination_provider=>create_by_url( 'https://sandbox.api.sap.com/successfactors/odata/v2/User' ).
  "alternatively create HTTP destination via destination service
    "cl_http_destination_provider=>create_by_cloud_destination( i_name = '<...>'
     "                            i_service_instance_name = '<...>' )
    "SAP Help: https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/f871712b816943b0ab5e04b60799e518.html

"Available API Endpoints
"https://api2.successfactors.eu/odata/v2
"https://apisalesdemo2.successfactors.eu/odata/v2
"https://api2preview.sapsf.eu/odata/v2
"https://api4.successfactors.com/odata/v2
"https://apisalesdemo4.successfactors.com/odata/v2
"https://api4preview.sapsf.com/odata/v2
"https://api5.successfactors.eu/odata/v2
"https://api8.successfactors.com/odata/v2
"https://apisalesdemo8.successfactors.com/odata/v2
"https://api8preview.sapsf.com/odata/v2
"https://api10.successfactors.com/odata/v2
"https://api10preview.sapsf.com/odata/v2
"https://api012.successfactors.eu/odata/v2
"https://apirot.successfactors.eu/odata/v2
"https://api12preview.sapsf.eu/odata/v2
"https://api15.sapsf.cn/odata/v2
"https://api16.sapsf.eu/odata/v2
"https://api17preview.sapsf.com/odata/v2
"https://api17.sapsf.com/odata/v2
"https://api18preview.sapsf.com/odata/v2
"https://api18.sapsf.com/odata/v2

"create HTTP client by destination
DATA(lo_web_http_client) = cl_web_http_client_manager=>create_by_http_destination( lo_http_destination ) .

"adding headers with API Key for API Sandbox
DATA(lo_web_http_request) = lo_web_http_client->get_http_request( ).
lo_web_http_request->set_header_fields( VALUE #( 
(  name = 'Content-Type' value = 'application/json' )
(  name = 'Accept' value = 'application/json' )
(  name = 'APIKey' value = 'e9ZLBOfIplCOnibykWXsAfkMUexchhHN' )
 ) ).

"Available Security Schemes for productive API Endpoints
"Bearer and Basic Authentication
"lo_web_http_request->set_authorization_bearer( i_bearer = '<...>' ).
"lo_web_http_request->set_authorization_basic( i_username = '<...>' i_password = '<...>' ).

"set request method and execute request
DATA(lo_web_http_response) = lo_web_http_client->execute( if_web_http_client=>GET ).
DATA(lv_response) = lo_web_http_response->get_text( ).

CATCH cx_http_dest_provider_error cx_web_http_client_error cx_web_message_error.
    "error handling
ENDTRY.

"uncomment the following line for console output; prerequisite: code snippet is implementation of if_oo_adt_classrun~main
"out->write( |response:  { lv_response }| ).

本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。

相关文章
|
2天前
|
API 开发者
免费邮箱API发送邮件测试调试的方法和步骤
本文介绍了使用免费邮箱API如aoksend、Mailgun、SMTP2GO发送邮件的测试调试步骤:选择合适的API,获取访问密钥,配置邮件参数,编写测试代码,调试和测试,查看发送日志,以及优化改进邮件发送功能,确保其稳定运行。
|
2天前
|
测试技术 API 网络架构
Python的api自动化测试 编写测试用例
【4月更文挑战第18天】使用Python进行API自动化测试,可以结合`requests`库发送HTTP请求和`unittest`(或`pytest`)编写测试用例。以下示例: 1. 安装必要库:`pip install requests unittest` 2. 创建`test_api.py`,导入库,定义基础URL。 3. 创建继承自`unittest.TestCase`的测试类,包含`setUp`和`tearDown`方法。 4. 编写测试用例,如`test_get_users`,检查响应状态码和内容。 5. 运行测试:`python -m unittest test_api.py`
12 2
|
2天前
|
JSON 测试技术 API
Python的Api自动化测试使用HTTP客户端库发送请求
【4月更文挑战第18天】在Python中进行HTTP请求和API自动化测试有多个库可选:1) `requests`是最流行的选择,支持多种请求方法和内置JSON解析;2) `http.client`是标准库的一部分,适合需要低级别控制的用户;3) `urllib`提供URL操作,适用于复杂请求;4) `httpx`拥有类似`requests`的API,提供现代特性和异步支持。根据具体需求选择,如多数情况`requests`已足够。
9 3
|
19天前
|
Java BI API
SAP Cloud for Customer 里如何通过 ABSL 二次开发方式消费 SAP S/4HANA 系统的 API
SAP Cloud for Customer 里如何通过 ABSL 二次开发方式消费 SAP S/4HANA 系统的 API
15 0
|
1月前
|
安全 测试技术 API
|
1月前
|
JSON 测试技术 API
Postman Newman 实现 API 自动化测试的快速指南
Newman 是一款专为 Postman 打造的命令行工具,旨在通过自动运行 Postman 集合和环境,实现 API 测试的自动化。它使得开发者无需打开 Postman 图形界面,即可直接在命令行中执行测试用例。
|
1月前
|
缓存 负载均衡 Java
Python实现API接口并发测试
Python实现API接口并发测试
58 0
|
1月前
|
架构师 前端开发 测试技术
|
2月前
|
JSON JavaScript 前端开发
提升 API 测试效率:Postman Tests 详解
Postman 不仅是一个强大的 API 开发工具,它还提供了创建自动化测试脚本的能力,这些脚本可以用于检验API请求得到的响应是否符合预期。这些测试脚本被称为 “Tests”,支持使用 JavaScript 编程语言进行编写,并且 Postman 提供了一系列的断言库来帮助你检查包括但不限于状态码、响应内容以及响应时间在内的响应数据。
|
2月前
|
开发框架 JSON .NET
初学者不会写接口怎么办?微软Visual Studio 2022无脑式API接口创建——Swagger一键导入APIKit快速测试
初学者不会写接口怎么办?微软Visual Studio 2022无脑式API接口创建——Swagger一键导入APIKit快速测试
78 0