Openness (API & SDK)
What Kind of APIs Does Mendix Expose?
Mendix APIs are available on most levels and for most components of the Mendix Platform.
Runtime APIs
Each application built using the Mendix Platform has powerful API options. Every element of the application model can be easily provided as part of the API through REST, OData, or SOAP services. You can use Java to extend the runtime, JavaScript to provide custom Widgets, and SQL to extend the data storage.
Platform APIs
The core platform functionality is accessible through APIs, which allows developers to access and integrate Mendix with other tools and applications (for example, to build and deploy APIs to support continuous integration). The platform provides APIs to create application projects, to manage Sprints and stories, and to manage user feedback. You can also build and deploy your applications through APIs.
For managing users and security, you can use APIs to manage user permissions.
Model APIs
Application models can be read and manipulated using the Model SDK.
This video presents more details on the Mendix Model SDK.
Where Can I Use the Openness & Extensibility Provided by Mendix?
There are many use cases that benefit from the openness and extensibility of the Mendix Platform. The following sections present examples grouped into three main categories.
Increasing Productivity & Quality via Automation
- These are some examples of how you can increase productivity and quality using the openness and extensibility of the Mendix Platform:
- Using the Mendix SDK, you can make bulk changes to one or more application models (for example, to change the icons in a number of app projects).
- The Mendix SDK enables doing static analysis of an app model. One example of this is in Mendix Quality and Security Management. This tool measures the quality of your app models and rates them compared to other models for a number of aspects identified by the ISO standard for maintainability.
- You can also use the Mendix SDK to generate documentation from your app models, ensuring that you always have the correct up-to-date documentation. For more details, see the section Exporting Your App Models in No Vendor Lock-In.
- The OData Connector for SAP solutions provided by Mendix uses the SDK to automatically generate the parts of your app needed to build on top of SAP services. For every data item defined in the SAP service (as specified using OData metadata), the connector will generate entities in a domain model in your Mendix application. This saves you a lot of time, and also ensures that the entities are 100% correct.
- The platform’s Build API and Deploy API can be used to define custom continuous integration and continuous deployment (CI/CD) automation. This will increase productivity and quality in case of complex deployment landscapes, as you can include validation and test steps.
Extending the Platform with New Functionality
These are some examples of how you can extend the Mendix Platform with new functionality:
- The Connector Kit enables creating custom integration and connectors. You can create a set of visual reusable microflow activities to handle integration with all sorts of services and existing applications. The Mendix Marketplace contains connectors for services like Slack and Twitter. Using these services becomes as simple as dragging a microflow activity from your Mendix Studio Pro toolbox into a microflow.
- Since connectors are written in Java, they can use any Java library available. That means you can seamlessly integrate existing scientific libraries into your Mendix application. And via the Mendix Runtime API, a connector can utilize all the functionality in your app model, including entities, data sets, microflows, pages, and configurations.
- The Mendix Runtime API is also used to provide integration for Mendix apps with existing identity management systems like Microsoft Active Directory. To see how this is done, check out the SAML module in the Mendix Marketplace.
- You can extend the way data is stored and retrieved in Mendix. Through the SQL API, it is possible to use database-specific functionality like indexes that can improve performance for specific situations. Integrations with alternative databases (for example, NoSQL databases) are also possible. For details, see the Redis Connector and Cassandra Connector in the Mendix Marketplace.
- As a last example, the Stories & Sprints API enables you to create integrations with third-party bug-tracking and project management tools like Jira.
Modernizing by Moving Between Platforms
The openness and extensibility of the Mendix Platform also helps you to migrate existing applications to Mendix and to migrate existing Mendix apps out of the platform.
The Model SDK can be used to take existing end-of-life apps (like Lotus Notes apps) and automatically generate the basis for a Mendix alternative. This can save significant time when re-platforming old software to Mendix.
If you no longer want to use Mendix for your application, you can use the Model SDK to access every part of your app model. This can be used to generate the app using a different technology or platform. For more information, see No Vendor Lock-In.