webMethods API Gateway 단독으로 Subscription 기능 사용 (10.7)

>> APIGatewayMonetizationSwagger.json (10.11)
>> APIGatewayApplication.json (10.7) 활용




  • Package - Plan 은 Gateway 화면에서 미리 생성해 두고 테스트

    • Plan id 관련 API

{{Gateway:Port}}/rest/apigateway/plans -> 전체 Plan 확인
{{Gateway:Port}}/rest/apigateway/plans/{planId} -> 특정 id 값 plan 디테일 정보

    • Package id 관련 API

{{Gateway:Port}}/rest/apigateway/packages/ -> 전체 Package 확인
{{Gateway:Port}}/rest/apigateway/packages/{packageId} -> 특정 id 값 Pakcage 디테일 정보




  • Subscription Application 생성 [POST] /rest/apigateway/subscriptions


Request Body (JSON)

{
"applicationName": "String",
"packageId": "생성한 Gateway의 Package Id 값 입력",
"planId": "생성한 Gateway의 Plan Id 값 입력",
"requesterId": "??????",
"applicationDescription": "String",
"otherRequesterDetails": {},
"redirectURIs": [
"xxxxx"
],
"requesterComment": "laborum commodo dolore deserunt",
"requesterEmail": "nisi ul",
"requesterFirstName": "est sed ut nulla",
"requesterLastName": "mollit ipsum eiusmod",
"requesterName": "aliquip irure nulla Duis anim"
}



Response

Response 받은 Package Id 값 활용하여 Applicatioin Id 값 찾기

"packageId": "f368a77f-cca2-424e-82d0-4e3e2356859d"



** 위에서 생성된 Application은 AppName이 Blank 처리되어 들어갈 수 없으나 ElasticSearch에서 확인이 가능
** Package Id , Plan Id 만 정확히 입력하면 나머지는 자동 생성





  • Subscription 인덱스에서 Application Id 값 Search
    • [GET] {GatewayIP}:9240/gateway_default_subscriptions-000001/_search?q=packageId:{Package Id}


"appIds": [
"cb27569d-22be-4642-b8f0-9c1b8debf5c2"
],


app Id 값 활용하여 Blank 처리된 Application update





  • 화면에서 확인 , 수정을 위한 Application Name Update
    • [PUT] /rest/apigateway/applications/:applicationId



-> Response 로 받은 apiAccessKey 활용하여 호출

Request Header > X-Gateway-APIKey : "apiAccessKey"

{
"name": "PSTM_UPDATE_APP_4",
"description": "",
"contactEmails": [],
"identifiers": [],
"siteURLs": [],
"jsOrigins": [],
"authStrategyIds": [
"2c6b8f8b-fabf-4b46-af3a-64604ae4e6d3"
],
"version": "1.0",
"id": "cb27569d-22be-4642-b8f0-9c1b8debf5c2",
"created": "2022-02-08 01:35:27 GMT",
"lastupdated": "2022-02-08 01:36:01 GMT",
"owner": "",
"consumingAPIs": [],
"teams": [],
"accessTokens": {
"apiAccessKey_credentials": {
"apiAccessKey": "f3a5eeea-a3f5-4f66-bc6d-748881c2b1b7",
"expirationInterval": null,
"expirationDate": null,
"expired": false
}
}
}