APIMatic CLI Commands
APIMatic CLI provides support for the following features:
- Validate API
- Transform an API definition in 10+ supported formats
- Generate an SDK in multiple supported languages
- Generate API Portal
For complete documentation of the APIMatic CLI commands, please refer to the Command Line Reference.
Validate API
Before you start using APIMatic, its important to validate your API specification to ensure syntactic and semantic correctness. This will allow you to take full advantage of APIMatic’s code generation abilities. Use the following command to validate your API specification.
$ apimatic api:validate --file="./filename.json"
Fixing validation issues will ensure that APIMatic will ensure you have a smooth experience using APIMatic’s services. The validation output is categorized into three categories defined below:
- Errors: Any syntax/semantic issues found in the API definition; for example, if a GET method contains a request body. API definition file import cannot proceed in case of an error. You will be required to fix the issues listed for your definition if that happens.
- Warnings: Any unexpected behavior that may affect the output; for example, if the parameter example provided is invalid. Warnings will not halt API import, but it is recommended that you fix these issues so your API definition results in the best possible experience.
- Messages: Recommendations or suggestions that can help enhance your API definition and its completeness. For example, messages can point out that an endpoint description or a parameter example is missing. Messages will not halt API import.
Transform API
APIMatic’s API Transformer is a powerful tool that allows interconversion between a large number of API specification formats including OpenAPI/Swagger, RAML, WSDL and Postman collections. This gives you the ability to use a whole array of format specific tools without having to port your API to a different specification format.
List of all the supported API specification formats are given in the API Transformer Docs.
In order to transform an API, use the apimatic api:transform
command. You can provide the source directory where the API specification is stored, required specification format and destination directory to download the transformed file.
$ apimatic api:transform --format="OpenApi3Json" --file="filename.json" --destination="D:/destination"
Success! Your transformed file is located at D:/Transformed_OpenApi3Json.json
Transform API via Url
Alternatively, you can also provide a link to the file using the --url
option, if the file is stored in a publicly accessible location on the internet.
$ apimatic api:transform --format="RAML" --url="https://petstore.swagger.io/v2/swagger.json" --destination="D:/destination"
Success! Your transformed file is located at D:/swagger_raml.yaml
To get a list of the available transformation formats, use the apimatic api:transform --help
command.
$ apimatic api:transform --help
...
--format=format (required) specification format to transform API specification into
(OpenApi3Json|OpenApi3Yaml|APIMATIC|WADL2009|WSDL|
Swagger10|Swagger20|SwaggerYaml|RAML|RAML10|Postman10|Postman20)
...
Generate SDK
APIMatic CLI also allows automatic SDK generation for your APIs in multiple popular languages including Java, C#/.NET, Python, Typescript, Ruby and PHP. Use the apimatic sdk:generate
command to generate SDK for any sample API.
$ apimatic sdk:generate
The following example generates Python SDK for a sample API (filename.json) and downloads it to your working directory in the form of a .zip file.
$ apimatic sdk:generate --platform=python --file="filename.json" --zip
Generating SDK... done
Downloading SDK... done
Success! Your SDK is located at D:\sample_sdk_python.zip
You can find the list of supported languages/platforms for SDK generation by invoking the apimatic sdk:generate --help
command.
$ apimatic sdk:generate --help
...
--platform=platform (required) language platform for sdk
Simple: CSHARP|JAVA|PYTHON|RUBY|PHP|TYPESCRIPT
Legacy: CS_NET_STANDARD_LIB|CS_PORTABLE_NET_LIB|CS_UNIVERSAL_WINDOWS_PLATFORM_LIB|
JAVA_ECLIPSE_JRE_LIB|PHP_GENERIC_LIB|PYTHON_GENERIC_LIB|RUBY_GENERIC_LIB|
TS_GENERIC_LIB
...
Generate API Documentation Portal
APIMatic’s auto-generated API Portal combines API documentation, SDKs and code samples into one neat static website. Embracing the philosophy of documentation as code, the API Portal can be generated right from the terminal, allowing the entire process to be made part of the release pipeline.
In order to generate an API Portal, the CLI expects inputs to be provided in a specific format. Details about the required input format are provided in the Generating API Portal Docs.
A sample input is provided in the GitHub repository. Clone or download this sample input. It consists of:
- A
content
directory containing Markdown guides. - A
spec
directory containing API specifications. - A
static
directory containing images or any other static content referenced in the documentation. - A configuration file called
APIMATIC-BUILD.json
.
Use the apimatic portal:generate
command to generate a static API Portal.
$ apimatic portal:generate --folder="./input-folder" --destination="D:/destination"
Downloading portal... done
Your portal has been generated at D:\generated_portal
The generated API Portal is downloaded at the location identified by the --destination
flag. In order to preview the generated API Portal, you will need to upload the generated directory to a web server.