Ray Framework

Regis Santos

@rg3915

Ray Framework

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

  • APIs fáceis
  • Gatilhos de banco de dados
  • Autenticação
  • API protegida
  • Servidor uWSGI
  • Integração com SQLAlchemy
  • Integração com Google App Engine

Porque Ray?

O Ray é um tipo de mix de Django e Flask.
   

Django é o tipo de framework que você está preso a ele.
   

Flask é um micro­framework 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

Ray Versão 0.2.0

github.com/felipevolpone/ray

@felipevolpone

@rg3915

Ray Framework

By Regis da Silva

Ray Framework

  • 154