Skip to main content
# Efesto
[![Pypi version](https://img.shields.io/pypi/v/efesto.svg?maxAge=3600&style=flat-square)](https://pypi.python.org/pypi/efesto)
[![Build status](https://img.shields.io/travis/Vesuvium/efesto.svg?maxAge=3600&style=flat-square)](https://travis-ci.org/Vesuvium/efesto)
[![Coverage](https://img.shields.io/codeclimate/coverage/github/Vesuvium/efesto.svg?maxAge=3600&style=flat-square)](https://codeclimate.com/github/Vesuvium/efesto)
[![Code Climate](https://img.shields.io/codeclimate/github/Vesuvium/efesto.svg?maxAge=3600&style=flat-square)](https://codeclimate.com/github/Vesuvium/efesto)

Efesto is a RESTful (micro)server that can be used for building an API in
minutes. It takes care of authentication, permissions and kickstarts you by
providing a simple way to build a data structure and the means to expose it.

Efesto follows the UNIX principle of doing one thing and well, leaving you the
freedom of choice about other components (e.g. caching, rate-limiting,
load balancer).

## When do I use this?

* You need a full-fledged ReST API
* You are fine using Siren as hypermedia specification
* You need authentication and permissions but want the work already done
* You are fine with using PostgreSQL
* You want to be able to create models without writing code (Python or SQL)
* You need to easily import and export the models you created
* You have Python3.4+ on your production server :)


## Installing

You will need to install and configure PostgreSQL, and a server like uwsgi or
gunicorn.

```
pip3 install efesto
```

Configure Efesto, editing the configuration file. At the very minimum you
will need to provide the database details.

```
vim efesto.cfg
```

Use efesto-quickstart to have tables and admin created:

```
efesto-quickstart
```

Done! Now you can run your server and launch Efesto:

```
gunicorn efesto:app
```

## The first request

Efesto only allows authenticated users to make requests, so first authenticate
yourself using the /auth endpoint. You will receive an access token that
should be sent in the Auth header.


```
POST http://myhost.com/auth
username=myuser&password=mypasswd

{'token':'someverylongtoken'}
```

Now that you have a token, you can make requests! For example, to get a list
of users:

```
GET http://myhost.com/users
Authorization: Basic anystring:someverylongtoken

# [ ... list of users ]
```

## More

Read the documentation at http://efesto.readthedocs.io for extra internet points!

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

efesto-0.6.2.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

efesto-0.6.2-py3-none-any.whl (21.0 kB view details)

Uploaded Python 3

File details

Details for the file efesto-0.6.2.tar.gz.

File metadata

  • Download URL: efesto-0.6.2.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for efesto-0.6.2.tar.gz
Algorithm Hash digest
SHA256 87074762354f44b4779343888c8adfbac32ce82ac65b465230580e05f956d058
MD5 bf4036f7c12e18fb0e142340f9e975bd
BLAKE2b-256 89e5a2a7e76b50c69d3cc8f7466e65ed3f95a57fa7306fa3dccacea326792c78

See more details on using hashes here.

File details

Details for the file efesto-0.6.2-py3-none-any.whl.

File metadata

File hashes

Hashes for efesto-0.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 66999f824e7f39ccf1bbab02f2a159b140d070f21a46d045075b5d139dcef656
MD5 b1c0d4a70bd641fbfe093de352e03543
BLAKE2b-256 3f1dd52725f98584cd579844c9ad7fba465c3ae74a9d0ba62b1d8f31f8e7c3c8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page