A cada dia, a tecnologia avança para novas profundidades. Novos frameworks, bibliotecas, padrões de design surgem para acompanhar a taxa de inovação em outros setores. Plataformas sociais de codificação como Livecoding.tv, GitHub, StackOverFlow, etc, são ótimos termômetros para ver quais novas tecnologias estarão em voga.
Uma dessas novas tecnologias é o Ray, um framework para Python desenvolvido por Felipe Volpone, um programador brasileiro, e a impressão inicial parece promissora. Também deve ser observado que o Ray foi feito com inspiração no Django e no Flask, de modo a ser possível criar poderosas REST APIs. Neste artigo, vamos nos concentrar em explorar as diferentes características do framework Ray e também construir um blog simples usando o framework.
Antes de começar, vamos analisar as principais características do framework Ray:
- Desenvolvimento de API com o Ray é fácil e divertido;
- Vem com o servidor interno uWSGI para fins de hospedagem;
- É compatível com Pewee, Google App Engine e SQLAlchemy;
- Oferece Proteção API;
- Ganchos de banco de dados e ações em APIs também são suportados;
- Suporta autenticação.
Instalando o Ray
Para usar o Ray, você precisa instalar o software de pré-requisito e bibliotecas para torná-lo funcional. Para um bom funcionamento e instalação, é necessário instalar o seguinte:
- Peewee ORM;
- Ray Framework;
- Ray Peewee.
Para fazer isso, você precisa executar os seguintes comandos pip no seu terminal Linux. (Ubuntu 16.04 é usado para o tutorial).
1 2 3 4 5 |
pip install peewee pip install ray_framework pip install ray_peewee |
Nota: Certifique-se de executar comandos usando sudo ou uma conta root.
Criando o App.py para o modelo de postagem
A criação de um modelo irá assegurar que as postagens sejam exibidas corretamente e interajam com o banco de dados. Para fazer isso, precisamos criar um arquivo “app.py” com o modelo de postagem. Verifique o código abaixo sobre como abordá-lo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
app.py # 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('/post') class Post(DBModel): title = peewee.CharField() description = peewee.TextField() database.create_tables([Post]) |
Depois de feito, você precisa executar o aplicativo usando o seguinte comando:
1 2 3 4 5 |
ray up --wsgifile=app.py # if you're using virtualenv ray up --wsgifile=app.py --env <env_dir> |
Não estamos usando um virtualevn, então você pode usar o primeiro comando para executar o servidor. Agora você pode acessar o servidor digitando localhost: 8080 na barra de endereços.
Como não temos nenhum recurso ou dados configurados, ele dará um erro 404.
Agora iremos em frente e criar um post usando o método CURL.
1 2 3 4 5 6 7 |
curl -X POST -H "Content-Type: application/json" -d '{ "title": "New blog!", "description": "let’s do this" }'"http://localhost:8080/api/post" |
Você pode usar os seguintes métodos CURL para interagir com seu blog:
Listar todas as postagens no blog: curl -X GET “http://localhost:8080/api/post/”
Recuperar uma postagem: curl -X GET “http://localhost:8080/api/post/1”
Gravar pesquisa: curl -X GET “http://localhost:8080/api/post?name=john”
Atualizar postagem usando CURL: curl -X PUT -H “Content-Type: application/json” -d ‘{“title”: “let’s change the title.”}'”http://localhost:8080/api/post/1″
Excluir uma postagem: curl -X DELETE “http://localhost:8080/api/post/1”
Pronto! Você configurou com êxito o seu blog usando o framework Ray. Você pode ler mais sobre os recursos do Ray como Endpoints, ganchos, autenticações, etc., nestes artigos do Medium e do blog do Livecoding.tv.
Comente e deixe-nos saber o que achou deste tutorial. Além disso, compartilhe seus pensamentos sobre como você acha que o framework Ray pode afetar o desenvolvimento web em Python.