Fusio

Simply build and
manage REST APIs

Fusio is an open source API management platform which helps to build and manage REST APIs. Fusio provides all tools to quickly build an API from different data sources yet it is possible to create complete customized responses.

// get sql connection
var connection = connector.get("sql-connection");

// query database
var user = connection.fetchAssoc("SELECT * FROM user WHERE id = :id", {
    id: request.getUriFragment('id')
});

if (user) {
    response.setBody(user);
} else {
    response.setStatusCode(404);
    response.setBody({
        success: false,
        message: "User does not exist"
    });
}

Fusio provides a simple javascript API to handle incoming requests and to produce a response. In the example we have a simple endpoint which gets a row from a database or returns a 404 if the row does not exist.

Besides the SQL connector there are also many other connectors which can be used to connect to i.e. a MongoDB or RabbitMQ.

Fusio monitors all API activities and shows them on a dashboard so you always know what is happening with your API.

All incoming requests are logged so you can always analyze who has requested a specific endpoint.

{
    "type": "object",
    "title": "todo",
    "properties": {
        "id": {
            "type": "integer"
        },
        "status": {
            "type": "integer"
        },
        "title": {
            "type": "string"
        },
        "insertDate": {
            "type": "string",
            "format": "date-time"
        }
    }
}

Fusio gives you the option to describe the data schema of the request and response in the flexible JsonSchema format.

Because of this Fusio provides also an automatically generated API documentation of all endpoints.

Fusio uses OAuth2 for API authorization. Each app can be limited to scopes to request only specific endpoints of the API.

Fusio comes with a developer javascript app which handles login, registration and authorization of app developers

Fusio provides a way to rate limit API calls for specific endpoints or apps. Through this it is possible develop plans for different API users and to protect sensitive API endpoints.