Regis Santos
@rg3915
Escrito por Felipe Volpone
rayframework.github.io/site
github.com/felipevolpone/ray
@felipevolpone
Ray é um framework que ajuda você a entregar software bem projetado sem ficar preso a sua
estrutura.
Ray está pronto para ser usado em produção com um servidor uWSGI.
Ray é uma homenagem a Ray Charles.
Características
O Ray é um tipo de mix de Django e Flask.
Django é o tipo de framework que você está preso a ele.
Flask é um microframework que você pode se conectar com vários plugins Python.
Ray tenta obter o melhor de ambos, com núcleo pequeno, mas poderoso, e permitindo que
os plugins se conectem com ele.
Com o Ray você pode desenvolver poderosas APIs REST de uma maneira simples e ter o
núcleo do seu aplicativo não acoplado ao framework.
# app.py
import peewee
from ray_peewee.all import PeeweeModel
from ray.wsgi.wsgi import application
from ray.endpoint import endpoint
database = peewee.SqliteDatabase('example.db')
class DBModel(PeeweeModel):
class Meta:
database = database
@endpoint('/notebook')
class Notebook(DBModel):
title = peewee.CharField()
active = peewee.BooleanField(default=True)
@endpoint('/note')
class Note(DBModel):
title = peewee.CharField()
content = peewee.TextField()
notebook = peewee.ForeignKeyField(Notebook)
if __name__ == '__main__':
database.connect()
database.create_tables([Notebook, Note], safe=True)
database.close()
application.run(debug=True, reloader=True)
$ curl -X POST -H "Content-Type: application/json"
-d '{"title": "new ideas"}' "http://localhost:8080/api/notebook"
$ curl -X POST -H "Content-Type: application/json"
-d '{"title": "new ideas", "content": "new contents", "notebook": "1"}'
"http://localhost:8080/api/note"
{
"result": [{
"content": "new contents",
"notebook": 1,
"id": 1,
"title": "new ideas"
}]
}
localhost:8080/api/note
{
"result": [{
"active": true,
"id": 1,
"title": "new ideas"
}]
}
localhost:8080/api/notebook
github.com/felipevolpone/ray
@felipevolpone