Skip to main content

Revamped API Transformer in APIMatic V3

· 4 min read

APIMatic V3 (codenamed Titan) is APIMatic’s largest release to date, bringing some major improvements to the Code Generator, the API Portal and the portal publishing flow. It also brings some shiny new features and improvements to API Transformer which are covered as part of this changelog.

Checkout all the new features and changes below:

No More Slow OpenAPI v2.0 and v3.0 Imports#

Our support for OpenAPI/Swagger v2.0 and v3.0 import has undergone a complete overhaul. You now get faster imports, improved support for $refs, improved warnings, error messages that make more sense, and much more. Check out the changelog at OAS Importers Revamp Release for more details.

Introducing Support for anyOf, oneOf, not Constructs and Union Types#

The much awaited support for anyOf, oneOf and not constructs is now finally available in all major formats like OpenAPI/Swagger, JSON Schema, API Blueprint, etc. Support for RAML and XML schema "union" types has also been added as part of this feature. This means that you can now convert between formats that support these constructs without losing this data. Check out our detailed changelog at Support for Union Types to learn more.

Complete Support for Responses Added#

Worry no more about losing data related to response status codes in the range 1XX, 2XX and 3XX. Our existing support for error codes in the range 4XX and 5XX has also been improved. If you use status ranges instead of status codes, we’ve got you covered for that too.

Check out our detailed changelog at Support for Multiple Responses Across All Formats and Support for Multiple Responses In RAML 1.0 to learn more.

Support For Multiple Examples Added#

A good API description comes with a user-friendly example for each component. Since OpenAPI v3.0 and RAML v1.0 support multiple examples, you can take your API description to the next level with this feature. And now easily use API Transformer to convert between these two formats without losing the multiple examples data. Check out our changelog on Support for Multiple Examples for more details.

More Configuration Settings Than Ever Before#

Looking to customize the default import/export behavior? We’ve added new configuration settings to help you configure various aspects of your transformation process than ever before.

Introducing APIMatic RAML Annotations#

Learn to configure RAML import through our new annotations. Check out our documentation on RAML Annotations for more details.

New Vendor Extensions for OpenAPI/Swagger#

We offer a large number of vendor extensions to configure the APIMatic CodeGen engine and transformations. You can visit Swagger CodeGen Extensions for more details. With this release, we've added the following new extensions:

  • Added a new extension x-image-uri to help users configure Image URI in the API Metadata.

  • Added new OpenAPI CodeGen extensions to configure CodeGen settings:

    • licenseText
    • retryInterval
    • backOffFactor
    • statusCodesToRetry
    • requestMethodsToRetry
    • userConfigurableRetries

New Import Settings#

You can configure the import process by specifying Import Settings in a Metadata file based on your requirements. Newly added import settings include:

  • ImportArrayOfMapsAndMapOfArrays

New Export Settings#

You can configure the export process by specifying Export Settings in a Metadata file based on your requirements. Newly added export settings include:

  • AddRefSiblingDataInAllOfSchema
  • EncodeUrlParamsInPostman
  • UseXsdBase64BinaryType

Bug Fixes

Numerous bugs were squashed. A few notable ones are listed below:

  • Handled issues related to circular dependencies when importing JSON schemas.
  • Fixed an issue that was preventing RAML libraries from being imported in the same order on consecutive imports/transformations.
  • Fixed a bug related to discriminator property being unnecessarily set in the child classes when importing/transforming from RAML v1.0.
  • Fixed a bug related to importing OpenAPI v3.0 form parameter default values.
  • Fixed a bug related to file parameters getting loaded with Body parameter type in absence of x-send-file-in-body extension in OpenAPI v3.0 import.
  • Fixed issue with Accept header value not loading correctly for export to Postman Collection format v1.0 and v2.0.
  • Fixed a bug related to nullable information getting missed out in case of arrays and maps when exporting to JSON schemas and OpenAPI v3.0 schemas.
  • Added a fix to handle older JSON schema drafts like Draft 3.
  • Added a bug fix related to importing XML data from Postman Collection (v1.0, v2.0) and HAR.
  • Fixed issues related to incorrectly loading response Content-Type from API Blueprint files.
  • Fixed issues related to importing complex models when the AppendParentNameForClashes import setting is enabled.
  • Added a fix for WADL importer that prevents importing empty media types.
  • Added a fix for a bug that prevented RAML v0.8 resource types from getting imported.
  • Added a fix for handling array JSON schemas that do not contain items sibling property.