A small introduction post of Fusio
posted by christoph.kappestein on 2017-04-10
For new users it is sometimes not easy to understand what the Fusio platform actually is and which problems it solves. This post should help to create a better understanding. To quote the front page:
Fusio is an open source API management platform which helps to build and manage REST APIs.
Instead of writing pages of technical details we have simply build a list with statements about Fusio. If this triggers your interest in the project your are welcome to get more information at the documentation section.
- Fusio is written in PHP an can be therefore self hosted on any VPS or bare metal server (we are also working on a cloud infrastructure).
- Fusio is similar to a CMS (Content Management System) but instead of content it manages an API therefore it is called an API Management Platform.
- Fusio has an AngularJS backend app where you can configure the system and see logs and analytical data about the API usage.
- Fusio is not like a framework it needs a database and you need to run an installation script. Because of that it provides many features like Authentication and User/App management out of the box.
- The single goal of Fusio is to solve all common API tasks so that the developer has "only" to implement the actual business logic. This means Fusio provides i.e.: Authentication (OAuth2), Rate-Limiting, API-Documentation, User management (Developer registration), JSON-Schema validation, Scope handling, Schema generation (Swagger, OAS).
- With Fusio you can develop your endpoint logic in PHP. Through an adapter system you can connect to different services i.e.: Mysql, Postgres, MongoDB or RabbitMQ. The endpoints can be deployed through a simple command.
- In Fusio everything works through the internal API. Even the console commands request an access token and trigger internal HTTP calls to i.e. deploy an API. Every interaction with the Fusio system goes through the API.
- Fusio provides a docker container through which you can install the complete system with a simple command.