Welcome to API Generation
Exposing APIs (Application Programming Interfaces) for your business services offers significant strategic, operational, and technical benefits.
But designing, implementing and maintaining usable and robust APIs is hard and expensive.
API Generation's Model Transform Tools (MTT) solves these problems and significantly reduces costs and improves quality. It does this by generating API specifications and a range of other key development products from a graphical representation of the information you want to share.
This provides the following benefits:
- Define once, generate many: Defining the business information in a structured but output agnostic model allows the generation of many outputs. The most common outputs are API specifications, such as OpenAPI, GraphQL and Protobuf. However, there are many other possibilities such as documentation using the Markdown standard, custom data standards, etc.
- Improve efficiency: The define-once, generate-many principle means that, by only having to invest in producing and maintaining the information models, API and other development costs and times are significantly reduced. The example Library project generates more that 7,500 lines of OpenAPI specification, over 450 lines of GraphQL specification and a complete set of consistent Markdown documentation.
- Incorporate best practice: The generators incorporate best practice and any local standards. Defining and implementing these rules is done once; resulting in rigour and consistency across all the generated artefacts.
- Democratise the development process: The use of standard UML diagrams, which are quick to learn how to read, enable a wide set of skills and experience to be involved in the model's development and review. This leads to more robust and enduring models and hence generated outputs.
- Provide technology independence: Using a model to generating specifications, rather than code, allows greater freedom to choose the technology to implement APIs, etc. For example, there are many open-source tools that take an API specification as input and generate implementation code in a particular programming language or framework.