webMethods API Gateway Subscription (10.7)

>> Subscription -> Pending Request -> Approve









  • Setting


    • Approval configuration
      • Create application > Enable
      • Subscribe package > Enable




    • User management ( create new User )




  • STEP1. Create Subscription request


    • Request

    • Request Header

      • Authorization : Basic Base64Encode(sjh2 : sjh2)


    • Request Body ( JSON )

{
"applicationName": "Application_PSTM_2",
"packageId": "f368a77f-cca2-424e-82d0-4e3e2356859d",
"planId": "2a2af9d5-9c02-4a8e-9dd6-9712fe72be19",
"requesterId": "newOwner123123",
"applicationDescription": "desc",
"otherRequesterDetails": {},
"redirectURIs": [
"http://192.168.1.143:5555/"
],
"requesterComment": "laborum commodo dolore deserunt",
"requesterEmail": "nisi ul",
"requesterFirstName": "est sed ut nulla",
"requesterLastName": "mollit ipsum eiusmod",
"requesterName": "pending_request_name"
}



    • Response
      • 500 Service Error

{
"$errorDump": "Server error occurred",
"$errorInfo": {
"$errorDump": "Server error occurred",
"$error": "Application doesn't exist for applicationId - 3c4b0710-c03a-4137-a174-677e86e07cef",
"$localizedError": "Application doesn't exist for applicationId - 3c4b0710-c03a-4137-a174-677e86e07cef",
"$errorType": "com.softwareag.pg.exceptions.BadRequestException",
"$service": "apigateway.subscriptions:_post",
"$user": "sjh2",
"$time": "Wed Feb 09 19:48:55 EST 2022",
"$pipeline": {
"applicationName": "Application_PSTM_2",
"packageId": "f368a77f-cca2-424e-82d0-4e3e2356859d",
"planId": "2a2af9d5-9c02-4a8e-9dd6-9712fe72be19",
"requesterId": "newOwner123123",
"applicationDescription": "desc",
"otherRequesterDetails": {},
"redirectURIs": [
"http://192.168.1.143:5555/"
],
"requesterComment": "laborum commodo dolore deserunt",
"requesterEmail": "nisi ul",
"requesterFirstName": "est sed ut nulla",
"requesterLastName": "mollit ipsum eiusmod",
"requesterName": "pending_request_name"
},
"$callStack": "[ >>>$service=apigateway.subscriptions:createSubscription, $currentPath=<<< , >>>$service=apigateway.subscriptions:_post, $currentPath=/0<<< ]"
},
"$error": "Application doesn't exist for applicationId - 3c4b0710-c03a-4137-a174-677e86e07cef",
"$errorType": "com.softwareag.pg.exceptions.BadRequestException"
}


>> $error > applicationId : 3c4b0710-c03a-4137-a174-677e86e07cef




  • STEP2. Search Approval Request
    • {GW_IP}:9240/gateway_default_approvalrequest-000001/_search
    • Step1. Search application id ( use "approvalEventPayloadAsString" )



    • Request

    • Request Body (JSON)

{
"query" : {
"match_phrase":{
"approvalEventPayloadAsString" : "3c4b0710-c03a-4137-a174-677e86e07cef"
}
}
}



    • Response

{
"took": 11,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 1.4510403,
"hits": [
{
"_index": "gateway_default_approvalrequest-000001",
"_type": "_doc",
"_id": "0cabb128-388b-4b41-a2a8-9dcf78be0340",
"_score": 1.4510403,
"_source": {
"id": "0cabb128-388b-4b41-a2a8-9dcf78be0340",
"approversGroupId": "Administrators",
"approvalEvent": "subscribePackage",
"requestorId": "sjh2",
"requestorName": "sjh2",
"requestorFirstName": "sjh2",
"requestorLastName": "sjh2",
"requestorMail": "sjh2@cudo.co.kr",
"mode": "anyone",
"created": "1644454134999",
"lastUpdated": "1644454134999",
"status": "pending",
"requesterComment": "",
"approvalEventPayloadAsString": "{\"owner\":\"\",\"isSuspended\":false,\"teams\":[],\"identifiers\":[],\"packageId\":\"f368a77f-cca2-424e-82d0-4e3e2356859d\",\"description\":\"\",\"planName\":\"PLAN4\",\"subscription\":true,\"jsOrigins\":[],\"version\":\"1.0\",\"authStrategyIds\":[\"20102d2f-9ec8-4b27-84f0-60e24bb56e09\"],\"lastUpdated\":0,\"siteURLs\":[],\"provider\":\"APIPORTAL\",\"shell\":false,\"name\":\"\",\"planId\":\"2a2af9d5-9c02-4a8e-9dd6-9712fe72be19\",\"packageName\":\"Package4\",\"applicationID\":\"3c4b0710-c03a-4137-a174-677e86e07cef\"}",
"approvers": [
{
"id": "Administrator",
"name": "Administrator",
"firstName": "Administrator",
"lastName": "",
"status": "pending"
}
],
"properties": {
"planName": "PLAN4",
"packageName": "Package4",
"approvalEventType": "subscribePackage"
}
}
}
]
}
}


>> "_id": "0cabb128-388b-4b41-a2a8-9dcf78be0340"
>> "approvalEventPayloadAsString":






  • STEP3. Upsert Approval Request new data
    • {GW_IP}:9240/gateway_default_approvalrequest-000001/_update/{approval request id}
    • ex ) 192.168.1.143:9240/gateway_default_approvalrequest-000001/_update/0cabb128-388b-4b41-a2a8-9dcf78be0340

    • edit approvalEventPayloadAsString > Owner, Name
"{\"owner\":\"\",\"isSuspended\":false,\"teams\":[],\"identifiers\":[],\"packageId\":\"f368a77f-cca2-424e-82d0-4e3e2356859d\",\"description\":\"\",\"planName\":\"PLAN4\",\"subscription\":true,\"jsOrigins\":[],\"version\":\"1.0\",\"authStrategyIds\":[\"f130e258-0ec8-4fe4-9775-fb14aba2eb4b\"],\"lastUpdated\":0,\"siteURLs\":[],\"provider\":\"APIPORTAL\",\"shell\":false,\"name\":\"\",\"planId\":\"2a2af9d5-9c02-4a8e-9dd6-9712fe72be19\",\"packageName\":\"Package4\",\"applicationID\":\"d7eb7dab-1603-4871-a503-8b4a46c6bc37\"}"


    • Request
      • owner : new owner
      • name : AppName


    • Request Body (JSON)

{
"doc" : {
"approvalEventPayloadAsString" : "{\"owner\":\"sjh2\",\"isSuspended\":false,\"teams\":[],\"identifiers\":[],\"packageId\":\"f368a77f-cca2-424e-82d0-4e3e2356859d\",\"description\":\"\",\"planName\":\"PLAN4\",\"subscription\":true,\"jsOrigins\":[],\"version\":\"1.0\",\"authStrategyIds\":[\"f130e258-0ec8-4fe4-9775-fb14aba2eb4b\"],\"lastUpdated\":0,\"siteURLs\":[],\"provider\":\"APIPORTAL\",\"shell\":false,\"name\":\"\",\"planId\":\"2a2af9d5-9c02-4a8e-9dd6-9712fe72be19\",\"packageName\":\"Package4\",\"applicationID\":\"d7eb7dab-1603-4871-a503-8b4a46c6bc37\"}"
},
"doc_as_upsert":true
}


    • Response

{
"_index": "gateway_default_approvalrequest-000001",
"_type": "_doc",
"_id": "7913aee4-f600-4cd2-914a-5d42df337d2b",
"_version": 2,
"result": "updated",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 183,
"_primary_term": 6
}




Result > Owner is not updated in the create application(Subscription : true), and API's are not mapped