Fusio

Use-Cases

Fusio is a versatile tool which can be used in many different use cases. The following page should give you an overview about the popular use cases of Fusio.

You can use Fusio as backend to build SPAs using popular Javascript-Frameworks like i.e. Angular, React or Vue. Fusio helps to simply create an authentication process and to create the fitting endpoints to obtain and send data for your app. It can be seen as an self-hosted alternative solution to services like Firebase.

Authentication

The following endpoints are needed if your want to build an authentication process.

  • /consumer/login

    Basic endpoint to obtain an access token, which then can be used to invoke protected API endpoints. Alternatively you can also use the /authorization/token endpoint for an OAuth2 compatible endpoint.

  • /consumer/register

    Through this endpoint it is possible to register a new user. If you want to use a recaptcha to protect the signup you need to enter the credentials RECAPTCHA_KEY and RECAPTCHA_SECRET at the .env file. The process sends a registration email to the user. This email can be customized at resources/config.yaml file. The user then needs to activate his account by visiting the activation link and the app needs to invoke the activate endpoint.

  • /consumer/password_reset

    Can be called via POST to initiate a password reset process. This sends an email to the provided email containing a link to reset the password. The app then need to send a PUT request to this endpoint containing the token from the link and the new password. This email can be customized at resources/config.yaml file.

  • /consumer/activate

    This endpoint needs to be called by your app to activate a new registered account. The registration mail contains a link to your app which then needs to call this endpoint containing the token which was provided at the url.

  • /consumer/authorize

    If you want to build an OAuth2 an "Authorization Code" flow into your app you can use this endpoint. Basically you need to provide the client_id and scope as query parameter to the endpoint and you get information about the app which wants to access data on behalf of the user. If the user wants to grant access you need to send a POST request containing basically all OAuth2 relevant information from the url i.e. response_type, client_id, scope, etc. Fusio then checks all values with the registered app and returns an redirectUri which your frontend can use to redirect the user back to the app.

Provider

Fusio helps you to automatically create a REST API based on a relational table. This simplifies building simple CRUD apps. Therefore you can use a provider s.

In the background a provider creates the fitting routes and assigns the actions.

SDK

If you want to use the internal API of Fusio, i.e. to automatically create apps or routes from your application you can use our official Javascript SDK.

You can use Fusio as API-Gateway. In this case Fusio acts as the single entrypoint for all your internal APIs / microservices. Through this you can create all fitting routes which proxy to your internal endpoints.

Fusio then covers topics like authorization, rate limiting, validation etc. It also generates automatically a complete OpenAPI definition for all your endpoints. Besides this Fusio provides also a documentation app which provides a great documentation for all your users.

The initial use case of Fusio was to create a great API beside an existing web app. We have many users which run a traditional web app and they use Fusio to create a state of the art API beside there existing product. Fusio can create an API directly on your tables and there are also multiple ways to integrate your existing business logic into the API. Fusio provides also a developer app which helps to on board new users to use your API i.e.

You can use Fusio also simply as framework to build an API from scratch. In this case you can develop custom actions and use the deploy mechanism. Please take a look at our sample headless CMS which shows how to build and structure a complex app using Fusio.

You can use Fusio as a Low-Code-Platform. This means that also beginners can use Fusio to build great state-of-the-art APIs. In this case the user uses Fusio more like a CMS and builds all routes and endpoints through the backend app. With Fusio we want to enable all developers to create great APIs, in this sense Fusio tries to be the Wordpress for API developers.

Fusio provides already many actions to solve common problems without coding

If such an action does not solve your problem you can write your backend logic in a custom action. Fusio supports multiple programming languages like Java, Javascript, PHP and Python so you can choose the tools which you know the most. We also provide a VSCode extension which allows you to connect to a remote Fusio instance and develop those extensions directly at the VSCode editor.