Swagger-Promote has been refactored into a new APIM-CLI, which is more powerful and supports more flexible use-cases.
Checkout the new API-Manager CLI:
https://github.com/Axway-API-Management-Plus/apim-cli
Swagger/WSDL based API promotion for Axway API-Manager V7
This project provides you with a tool that simplifies your DevOps experience with the Axway API-Manager Version 7.x.
The program works based on the API-Definition (as Swagger or a WSDL) + an API-Configuration-File and replicates this "state" into the API-Manager. Consider the API-Definition + API-Config as the "desired" state and API-Manager has the "actual" state. This program will compare both, the desired with the actual state, and performs all necessary actions to bring the API-Manager API into the desired state.
Watch this video (28 min): https://youtu.be/2i8i1zMAMps to get an overview + demo.
With that, an API-Developer is just providing the Swagger-File or WSDL (e.g. Code-Generated or using a Swagger-Editor) and the API-Config. When checked in, the CI/CD-Pipeline picks it up and replicates it into the API-Manager. This includes Zero-Downtime-Upgrade of existing applications, which might have an active subscription to an API. Learn more in the documentation.
Today the following API-Properties are already supported and can be controlled externally:
- State-Handling (Unpublished, Published, Deprecated & Deleted)
- API-Summary, API-description
- API-Image
- API-Version
- API-Path
- API-Inbound-Security settings
- incl. all custom settings (e.g. API-Key settings, etc.)
- Outbound-Custom-Policies
- Routing, Request, Response, FaultHandler
- Outbound Authentication
- Backend Base-Path
- CORS-Setup
- V-Host
- Tags
- Custom-Properties
- Quota-Management (Application- & System-Default-Quota)
- also handling Application Quotas manually configured while updating an API
- Client-Organization handling
- Query-String routing
Improving the API-Development experience during the API-Design phase leveraging the Stoplight integration. Learn more.
Quality assurance process
By using Swagger Promote to control your Axway API management infrastructure it becomes a key component of your CI/CD process. Product quality is therefore very important so that you can be confident that Swagger Promote is doing what it's supposed to do.
To achieve this quality bar, Swagger-Promote was developed from the beginning in a way that it can be tested fully automatically. The test process consists of different scenarios, which contain various API-Desired states, which are transferred into Actual state by Swagger-Promote and finally checked if the Actual State in the API-Manager is correct.
With the most recent released version 1.6.5 the automated End-2-End test suite contains of 104 different scenarios, which includes more than 250 executions of Swagger-Promote (Import & Export) following each by a validation step. The test suite is executed at Travis CI for the following versions:
Also version 7.5.3 is supported, but not fully automated tested.
Install
- Download the latest release or get it from
- extract the tar.gz file
- make sure you have JRE 8 installed and setup JAVA_HOME environment variable
Usage
- run the script scripts/run-swagger-import.sh to see the basic usage and some samples
- more information can be found in the project wiki
Changelog
- 1.0.0 - 12.12.2018
- Initial version that supports all API-Properties besides method level settings
- 1.0.1 - 13.12.2018
- Added support for API-Manager 7.5.3 plus minor fixes
- 1.1.0 - 18.12.2018
- Added support for Quota-Management plus minor fixes
- 1.2.0 - 20.12.2018
- Added support for API-Outbound AuthN and support to configure the API-Backend-Basepath
- 1.3.0 - 08.03.2019
- Added support for Organization- & Application-Management
- 1.4.0 - 14.03.2019
- Added support to refer a Swagger-File from a URL instead of the local File-System only
- 1.4.1 - 20.03.2019
- Stabilized handling of Client-Orgs and Client-Apps (added support for modes: add|replace|ignore)
- 1.4.2 - 03.04.2019
- Added support for WSDLs API-Definitions, API-Manager port now a parameter, validate Admin-Role user is used
- 1.5.0 - 09.04.2019
- Added support for Org-Admins and option to externalize parameters into environment properties
- 1.5.1 - 30.04.2019
- Validate the given API-Organization & Now existing application quotas are preserved
- 1.5.2 - 27.05.2019
- Added compatibility for 7.6.2 SP3, App-Quota-Handling improved, Support for Query-String-Option
- 1.5.3 - 01.07.2019
- Now available in Maven-Central, API-Metadata export module, Outbound SSL support
- 1.6.0 - 12.07.2019
- Added support for method level overrides, Rollback feature
- 1.6.1 - 09.08.2019
- Quota-Handling & Method-Level configuration improvements and bugfixes
- 1.6.2 - 09.08.2019
- Export existing APIs, Quota-Validation
- 1.6.3 - 30.09.2019
- Maintenance release with some minor bugfixes and improvements, Added support for 7.7 SP1 & 7.6.2 SP5
- 1.6.4 - 03.12.2019
- Added fully support for V-Host and the API-Routing-Key. Learn more
- 1.6.5 - 27.02.2020
- Added support for release 7.7-20200103, Improved Org-Admin support Learn more and a number of bugfixes
- 1.6.6 - 31.03.2020 All changes
- Optimized Swagger-Promote for Jenkins-Integration:
- Jenkins-Integration-with-GitHub-&-Bitbucket
- 1.6.7 - 27.04.2020 All changes
- Added support for OpenAPI 3.0 - Now backendBasepath can be used for OpenAPI 3.0 specifications
Limitations/Caveats
- API-Method-Level description is not yet supported
- Deep merge of stage-config files isn't supported
Contributing
Please read Contributing.md for details on our code of conduct, and the process for submitting pull requests to us.
Also please read this page on how to contribute to this project.