欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用SAP API portal进行SAP SuccessFactors的API测试 apiSAP UI5SAP Cloud PlatformSAP成都研究院ABAP 

程序员文章站 2022-03-19 14:28:13
...

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

使用SAP API portal进行SAP SuccessFactors的API测试
            
    
    
        apiSAP UI5SAP Cloud PlatformSAP成都研究院ABAP 

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

使用SAP API portal进行SAP SuccessFactors的API测试
            
    
    
        apiSAP UI5SAP Cloud PlatformSAP成都研究院ABAP 

选择User Management:

使用SAP API portal进行SAP SuccessFactors的API测试
            
    
    
        apiSAP UI5SAP Cloud PlatformSAP成都研究院ABAP 

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

使用SAP API portal进行SAP SuccessFactors的API测试
            
    
    
        apiSAP UI5SAP Cloud PlatformSAP成都研究院ABAP 

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

使用SAP API portal进行SAP SuccessFactors的API测试
            
    
    
        apiSAP UI5SAP Cloud PlatformSAP成都研究院ABAP 

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

使用SAP API portal进行SAP SuccessFactors的API测试
            
    
    
        apiSAP UI5SAP Cloud PlatformSAP成都研究院ABAP 

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

使用SAP API portal进行SAP SuccessFactors的API测试
            
    
    
        apiSAP UI5SAP Cloud PlatformSAP成都研究院ABAP 使用SAP API portal进行SAP SuccessFactors的API测试
            
    
    
        apiSAP UI5SAP Cloud PlatformSAP成都研究院ABAP 

 

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

使用SAP API portal进行SAP SuccessFactors的API测试
            
    
    
        apiSAP UI5SAP Cloud PlatformSAP成都研究院ABAP 使用SAP API portal进行SAP SuccessFactors的API测试
            
    
    
        apiSAP UI5SAP Cloud PlatformSAP成都研究院ABAP 

 

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

使用SAP API portal进行SAP SuccessFactors的API测试
            
    
    
        apiSAP UI5SAP Cloud PlatformSAP成都研究院ABAP 

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

使用SAP API portal进行SAP SuccessFactors的API测试
            
    
    
        apiSAP UI5SAP Cloud PlatformSAP成都研究院ABAP 

> curl --request GET --url "sandbox.api.sap.com/suc" --header "APIKey: e9ZLBOfexchhHN" --header "Accept: application/json" --header "Content-Type: application/json"

 

 

> curl --request GET --url "sandbox.api.sap.com/suc" --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

#api2.successfactors.eu/

#apisalesdemo2.successfactors.eu

#api2preview.sapsf.eu/od

#api4.successfactors.com

#apisalesdemo4.successfactors.com

#api4preview.sapsf.com/o

#api5.successfactors.eu/

#api8.successfactors.com

#apisalesdemo8.successfactors.com

#api8preview.sapsf.com/o

#api10.successfactors.com

#api10preview.sapsf.com/

#api012.successfactors.eu

#apirot.successfactors.eu

#api12preview.sapsf.eu/o

#api15.sapsf.cn/odata/v2

#api16.sapsf.eu/odata/v2

#api17preview.sapsf.com/

#api17.sapsf.com/odata/v

#api18preview.sapsf.com/

#api18.sapsf.com/odata/v

使用SAP API portal进行SAP SuccessFactors的API测试
            
    
    
        apiSAP UI5SAP Cloud PlatformSAP成都研究院ABAP 

得到的结果:

使用SAP API portal进行SAP SuccessFactors的API测试
            
    
    
        apiSAP UI5SAP Cloud PlatformSAP成都研究院ABAP 使用SAP API portal进行SAP SuccessFactors的API测试
            
    
    
        apiSAP UI5SAP Cloud PlatformSAP成都研究院ABAP 使用SAP API portal进行SAP SuccessFactors的API测试
            
    
    
        apiSAP UI5SAP Cloud PlatformSAP成都研究院ABAP 

 

 

 

也可以通过select操作,让API只返回firstName和lastName两个字段的值:

curl --request GET --url "sandbox.api.sap.com/suc

User,UserPermissions/User?%24top-5&%24select=firstName%2ClastName" --header 'APIKey: e9ZLBOXsAfkMUexchhHN' --header 'Accept: application/ison' --header "Content-Type: application/ison"

 

 

curl --request GET --url "sandbox.api.sap.com/suc" --header "APIKey: e9ZibykWXsAfkMUexchhHN" --header "Accept: application/json" --header "Content-Type: application/json"

使用SAP API portal进行SAP SuccessFactors的API测试
            
    
    
        apiSAP UI5SAP Cloud PlatformSAP成都研究院ABAP 

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

 

```JavaScript

//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 API portal进行SAP SuccessFactors的API测试
            
    
    
        apiSAP UI5SAP Cloud PlatformSAP成都研究院ABAP 

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

 

```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: SAP Help Portal

"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 }| ).