[go: up one dir, main page]

Skip to content

electricintel/fusio

 
 

Repository files navigation

Fusio

About

Fusio is an open source API management platform which helps to build and manage RESTful APIs. It provides endpoint versioning, handling data from different data sources, schema definition (JsonSchema), automatic documentation generation and secure authorization (OAuth2). More informations on http://www.fusio-project.org/

We think that there is a huge potential in the API economy. Whether you need an API to expose your business functionality or to develop One-Page web applications or Mobile-Apps. Because of this we think that Fusio is a great tool to simplify building such APIs.

Overview

This section gives a high level overview what the Fusio system provides and how the application is structured. Lets take a look at the components which are provided by Fusio:

Overview

Fusio API

If you install a Fusio system it setups the default API with that it is possible to manage the complete system. Because of that Fusio has some reserved paths which are needed by the system.

  • /backend
    Endpoints for the backend app
  • /consumer
    Endpoints for the consumer app
  • /doc
    Endpoints for the documentation app
  • /authorization
    Endpoints for the consumer to get i.e. information about the user itself and to revoke an obtained access token
  • /export
    Endpoints to export the documentation into other formats i.e. swagger

All following apps are working with the API. Because of that it is also really easy to integrate Fusio into an existing system since you can call the endpoints from your application.

Backend App

Backend

The backend app is the app with that you can configure the system. It gives you the possibility to define the routes of your API and which actions should be executed. The app is located at /backend.htm.

Consumer App

Consumer

The consumer app is used by the consumer of the API. Those are either app developers which want to consumer your API or normal end users. At the consumer app the user can update basic account information and revoke the access of authorized apps. The user can also create new apps. Through the created app he obtains an app key and secret with that it is possible to get an access token to access protected parts of the API. The app is located at /consumer/.

Documentation App

Documentation

The documentation app simply provides an overview of all available endpoints. It is possible to export the API definition into other schema formats like i.e. Swagger. The app is located at /documentation/.

Installation

To install Fusio download the latest version and place the folder into the www directory of the webserver. After this Fusio can be installed in the following steps.

  • Adjust the configuration file
    Open the file configuration.php in the Fusio directory and change the key psx_url to the domain pointing to the public folder. Also insert the database credentials to the psx_sql_* keys.
  • Execute the installation command
    The installation script inserts the Fusio database schema into the provided database. It can be executed with the following command php bin/fusio install.
  • Create administrator user
    After the installation is complete you have to create a new administrator account. Therefor you can use the following command php bin/fusio adduser. Choose as account type "Administrator".

You can then login to the backend at /backend.htm where you can start to configure the system.

Documentation

The offical documentation is available at http://fusio.readthedocs.org/

Use cases

Today there are many use cases where you need a great documented REST API. In the following we list the most popular choices where Fusio comes in to play.

Business functionality

Exposing an API of your business functionality is a great way to extend your product. You enable customers to integrate it into other applications which gives the possibility to open up for new markets. With Fusio you can build such APIs and integrate them seamlessly into your product.

Javascript applications

Javascript frameworks like i.e. AngularJS or EmberJS becoming more popular. With Fusio you can easily build a backend for such applications. So you dont have to build the backend part by yourself.

Mobile apps

Almost all mobile apps need some form to interact with a remote service. This is mostly done through REST APIs. With Fusio you can easily build such APIs which then can also be used by other applications.

Reasons

  • Versionable endpoints
    With Fusio you can create flexible endpoints to design the API in the way you like. Each endpoint can have multiple versions with different request and response formats. This makes it easy to advance your API as it grows.
  • Action handling
    Fusio provides already many actions to handle common usecases. I.e. it is possible to execute SQL queries against a database or send data into a message queue. Also it is very easy to provide custom implementations.
  • Schema definition
    Fusio gives you the option to describe the data schema of the request and response in the flexible JsonSchema format.
  • Automatic documentation
    Fusio generates automatically a documentation of the API endpoints based on the provided schema definitions.
  • Secure authorization
    Fusio uses OAuth2 for API authorization. Each app can be limited to scopes to request only specific endpoints of the API.

Contribution

If you have found bugs or want to make feature requests use the bug tracker on GitHub. For code contributions feel free to send a pull request through GitHub, there we can discuss all details of the changes.

About

Open source API management platform

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 50.3%
  • HTML 42.4%
  • PHP 5.1%
  • CSS 2.1%
  • ApacheConf 0.1%
  • Batchfile 0.0%