The Gateway Manager supports the storage of API definitions in different formats. The format defines how the service is stored and differs also in the way differences can be managed within the repository. There are two supported file formats: “GMU Single File” and “APIIDA Enhanced”. The following article explains the differences between those formats.
GMU Single File
The GMU Single File format relates to the storage format used by the Layer7 Tool “Gateway Migration Utility”. The storage format is shown in the following image:
In this format, the service definitions are stored within a “Bundle.xml” file. For reference purposes, a seperate “folders.xml” file is added which stores the folder hirarchy of the service. An example for the content of the folders.xml file is shown below:
To get a more detailed description of the service definitions within the “bundle.xml”, please refer to the Restman Documentation on your Layer7 API Gateway.
APIIDA Enhanced
The “APIIDA Enhanced” format adds two folders to the described “GMU Single File” format above. A folder “policies” which contains one or more individual service definitions in XML as <l7:Service> objects. Additionally, a “conf” folder is added which contains several configuration descriptions in JSON. The format is shown below:
In this example, the content of the conf folder shows three files:
These JSON files contain descriptions of several resources used within one or multiple policies. The definition of “resource” used here follows the official Layer7 definition (review the Restman documentation for a complete list of resources).
Examples:
“Folder.json” contains a JSON object which defines the folder of the solution:
{ "folder": [ { "folderId": "0000000000000000ffffffffffffec76", "name": "Demo", "id": "b56f10f3c04cd607eb080dce4b0426e5", "version": 2 } ] }
“PrivateKey.json” contains the definition of an encrypted private key and the corresponding certificate used within the services:
{ "privatekey": [ { "alias": "SSL", "keystoreId": "00000000000000000000000000000002", "certificateChain": { "certificateData": [ { "issuerName": "CN%3D6d3095b61858", "serialNumber": "3850365724295781246", "subjectName": "CN%3D6d3095b61858", "encoded": "MIIC8jCCAdqgAwIBAgIINW8\/OeP9W34wDQYJKoZIhvcNAQEMBQAwFzEVMBMGA1UEAxMMNmQzMDk1YjYxODU4MB4XDTE5MDcwNDA5MjgzM1oXDTI5MDcwMTA5MjgzM1owFzEVMBMGA1UEAxMMNmQzMDk1YjYxODU4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAozrf552zOGxS\/ncF36U8DVuQL1RjDusyWkqVPPuS4dG9tBpvyMm7RzfphetbOMVvB1LxHXhmW7WdSV3qgHBTRPPe4Yp+7zyNtuHUAVQ5geNDKd\/0AbRK5KmVld5Fd6cldZkSoSjII+A0j\/WncNQh1NCVuezUfVtrZn6LW9enI+6lRgA0Iae8tsoA5QHWGbwd25EKwl2JzI\/3eGH1cUO1ZPnQuroWKsw+\/klUXsJ+Mgb4ScdTP+32qKHyK7Dk4ROCYCXx5yF6PeuCoW0oMO6M07KsPGps83ZRrStusJ7lY8IxfkiGZnt3nkkc9VkFmd78fWo21fs9tSIQy7YUE6GMuQIDAQABo0IwQDAdBgNVHQ4EFgQU13Uj1Z62ksi59h2S9ZaNyhv+Tn8wHwYDVR0jBBgwFoAU13Uj1Z62ksi59h2S9ZaNyhv+Tn8wDQYJKoZIhvcNAQEMBQADggEBAIK4iZf1RwkT9IsAD8siIyGj52c6TOP+xkAeyASlJXUA1ZoRl8UvUl6zK4qLaJtIgUyUGZOHFJdOR45I\/NUcB6iQ1ZimReChao9vEA1wDZwJjkRXyrm+sxIhxdBUbBIlQ2o4teZOXadWyo6cxW9+iqf+YL+7ybahLmHvTcgQUPYmsPY8iH3NfvNBASgMj0W+Y61IBZifTYUSYTSnQZVKC2IMTVURZPv78LF4Yklx28VLpYoDcnEGumJ7+QWNhlGSDrjibD4ABDiTMDmEtwGZUT90G+MWaSZF0A0wjPPWK9BoCw3XjimHyF0Tf89JJZkbiLvK7t2GS5CQiq\/q\/YWSubQ=" } ] }, "properties": { "property": [ { "key": "keyAlgorithm", "stringValue": { "value": "RSA" } }, { "key": "keyData", "stringValue": { "value": "$L7C2$1,X7tYy\/bwua577cwHdHutiwl9K4RKA1YzTztv0ysTR1c=$oWq\/Y+5gHUTrmyZK2kBT5Wz66E5YWtUugeXSfGoKOAOybSclyPT9FZdTICpw++xzNeYmQr+dMURJgLbjCqYktLi81HhksWzKBNeAgC75BOxS+fX0a4TRwFu+8736JZI+qPSAJcaJqtvHa69+234A418CW+1BqrII1DQ5jQwPbW0STwCFEYLBUwHbPcVOq2aynUG3wHxUkgOJllF\/iRLuq5Ph93ElB1etwpB8uCvUVhkXuhEy7pf7Od9y6QFNDb0nRmZkFd77idByaFL3USDqdm3\/cKlwgEPMmwFwTBwNYjlX5j\/oNZlT4fkoSvlG+qefvj35U9lGpCIm12O\/aihVVUAxUpMRKHpG\/cxVjrT55i3L1mzSHnjXhC1FH7s0f9xuUAgpg+OD76ffljgFTymlXOu1UxsHXyv7KNHfTZa6eLHsGiZU5MtbLeHBhNFisz6+pVkSSFviKIGWeJsCn2oXHWGMH+pfjiAbTNHrmfKuKxJQrRAjDV9ijLzs1ulEJLp\/mgcVviWKyJ0fyxCt9iULPRr5axPIdQL5J6w518cE5xtE26bpqqseJaqHPqwQrGUZl6Q21+V1j1lfXF5Sx\/B7loBlMk3WESTO\/FyO663EB4\/WtmoD\/2A\/Xcff0TTejG2iO0wxUgTbrDQ5XW4Klid0SYyTmxrpe\/AlTrVxOF41o6KBaSz6XMkojr14xZkEoWDs1OUjrTUenXqE76NkIvZeBwkrsye26G2SZNy1bJwc4WhsmZbdPMjSyD+QBRAL52xpU8Z+tA\/PlBH4kvizRgxDZlV47z1OeW86aHfvqh3Np78FFJXcEm6uey5ncVUlhcau9DIlPaWmPvofU5w1KLizgxcVeIR2h5cFPj8gCYIksWhDONHTd9W8InePnmjIw29Yhg2wBcDWdxEflWj9rucltH\/Ww6bNlpeC51SqVp8YCcrnt88Uj5Wz0z0p9WwoKKWCcnud5n0uEJrViHthEHMCFybex0IkvnMr9qI33+9kusyQhs3jRkcJb+IyqsRqrBpf5opHjIIK1PxaBYsVm9eGwwyxPzxaZ3xc10KEgOexu9h25Ccffw4zLOdvakYz5IC3lI7ZsTFZv9xro7S8w7amVwyr+MReORO6Q\/rOA7xqLq3ovWPfKoZNQ\/eL\/fzZ\/kA5z9Nl1ndwA7UP0KKycx9wlwoxxkwB9iPp3UGyE8QV3UMHKb4qGZeDYQmn4XJmsvsQX+t0IKexo\/wjHbVn4nKumer2INQ6GA\/Puj8AcNzI+pTcMYi\/Uv932sSr8WkKrPPt2ZWwlWxzAP2YtD626fhAETqY6ZPxbQ+eoTJxoTx06lbkjSiYz0ONajv8nWNbLYnDGXFrzTEkMkyC2HqthZYx899WescyPN\/QrzC29biAw1\/iRjecS2ul\/1nfWOLo4M3LDaVXu4kaV10GPkcgjlgakx+nbB7j2r1ivrb0l7\/QhjUpdAAOlh1WMFVO93GdtrtrXRCbJXTVB2c62bqDYBs3bZyLdPtWKy7ofpgL6idMTebdhY+zV0caRzRMKZuYUUhUnnc539oj6P4a1yKnOWKSsMSeiYLMt1\/c6XBvtM5djhkASaQqwez9Vx\/rEeHdAvbAnjwAF1M8wrExSn3QZiYOVO8TagDpEjQMU0dQ9TiHSWYz7+OJJuiNuuRmkOOF4SB6OB1MuQS6PnoK2Lh1DWMQ4TUNfkyxlRAlGp2a9teMFGo=", "bundleKey": "$L7C2$1bead,519aYRZKLTt71Mc96vNRtbvijxCHLgjuhNtM9pShwKE=$HWMVeY4zf2HYVgwVU1oGy18XcztMNsHPeme5KgIBgO8QIpuzD9uFfDjfeI4ysDGfhqvr1ri9Y+hchP2wXNt5veaWD\/O9dkk6p6cgpEbN+k2HA4sglp1IF05OYAMJQLmt", "algorithm": "RSA" } }, { "key": "specialPurposes", "stringValue": { "value": "Demo Key" } } ] }, "id": "00000000000000000000000000000002:SSL" } ] }