Um dos grandes problemas atuais envolvendo requisições HTTP são os inúmeros erros que podem acontecer no meio do caminho, desde simples timeouts, a erros com código 429 - que é quando o cliente excede o limite de requisições do servidor.

Para resolver isso, temos uma solução nativa presente na biblioteca padrão do python, chamada: urllib3. Através dela, podemos definir tipos de métodos a serem verificados, os códigos esperados e quanto tempo esperaremos para realizar uma nova requisição. Esse recurso possibilita desenvolver melhores soluções na hora de consumir uma API.

Tentando novamente em caso de falha


Mongoose é uma biblioteca do NodeJS que proporciona uma solução baseada em esquemas para modelar os dados da sua aplicação. Ele fornece um mapeamento de documentos do MongoDB similar ao ORM (Object Relational Mapping), ou ODM (Object Data Mapping) no caso do Mongoose. Exemplificarei aqui como configurar ele em um projeto com Express e o mesmo em ação.

Configurando o projeto

A Para exemplificar melhor, criaremos uma aplicação bem simples com ExpressJs. Para isso, crie uma pasta chamada project em algum diretório qualquer, e dentro dela execute:

$ yarn init -y

O comando acima criará um arquivo chamado package.json, é nele que ficara…


Boa parte dos recursos do ES6 ainda não é suportado de forma nativa pelo NodeJS, algo que podemos contornar com a utilização de transpilers como o babel, irei exemplificar aqui a utilização e configuração do mesmo em um projeto NodeJS utilizando ExpressJS.

Configurando o projeto

Começaremos criando um projeto bem básico para melhor exemplificar as configurações e funcionamento do node com ES6 via babel, para isso execute:

$ yarn init -y

O comando acima irá criar um arquivo chamado package.json com alguns informações básicas como nome do projeto, versão, etc.

Utilizaremos o ExpressJS como framework no projeto, para isso precisamos instalar o mesmo…


Em alguns momentos no desenvolvimento de APIs, nos deparamos com situações onde precisamos utilizar serializers diferentes. Por exemplo, em uma ViewSet onde temos uma listagem mais detalhada dos objetos, mostrando por exemplo todas as informações dos objetos que se relacionam com a instância em questão e uma ação que utiliza o método POST ou UPDATE onde é recebido as informações desses objetos apenas por ID. Precisamos definir que um ou outro serializer será usado.

Indo para prática

Para melhor exemplificar, imagine um modelo como o apresentado abaixo:

O modelo acima tem relação com o modelo de usuários:

E com o modelo…


Já trabalho a alguns anos com Arduino e sempre procurei alternativas para a utilização de python com o mesmo. Felizmente a comunidade sempre criou alternativas e formas para integrar tecnologias tão diferentes. Sempre utilizei o pyserial, que é uma biblioteca que proporciona a comunicação serial de uma aplicação python com o arduino via protocolo firmata e que explano melhor nesse post. …


No desenvolvimento de APIs Rests a autenticação é um fator obrigatório. Nos dias de hoje existem inúmeros métodos de autenticação, mas sem dúvidas um dos mais utilizados é o JWT (Json Web Token), que através da utilização de tokens possibilita uma forma fácil e eficiente de autenticação em suas aplicações web.

JSON Web Tokens

Em resumo, JWT é uma string de caracteres codificados que, caso cliente e servidor estejam sob HTTPS, permite que somente o servidor que conhece o ‘segredo’ possa ler o conteúdo do token e assim confirmar a autenticidade do cliente.

Ou seja, quando um usuário se autentica no sistema (com…


Recentemente precisei de um campo em um dos meus serializers que seria gerado em tempo de execução. Eu tinha um serializer de anúncios e precisava de uma flag chamada "liked" que iria indicar se o usuário logado tinha dado like ou não em cada um dos anúncios do json retornado com base nas informações dos dados de uma outra tabela.

Para esse tipo de coisa, o Django Rest Framework nos disponibiliza o SerializerMethodField. Esse serializer recebe o valor de um método presente na classe serializadora na qual está anexado.

O método em questão deve ter seu nome começado com get


Aloha Devs!

Gerar PDFs é uma das tarefas mais corriqueiras na vida de um desenvolvedor, trago hoje a vocês uma ótima solução quando se trata de geração de PDFs no django. Mais precisamente no admin do django, sem mais delongas vamos ao que interessa.

Criando o projeto

Antes de tudo precisamos criar o projeto, para isso crie um ambiente virtual com o pipenv (Caso não esteja familiarizado com o pipenv leia esse post onde explico tudinho) e instale o django com:

$ pipenv install django==2.0

Crie o projeto executando o comando abaixo:

$ django-admin.py startproject project .

Crie a aplicação que armazenará toda…


Aloha devs!

Apesar de simples, autopreenchimento de campos de endereço é algo que economiza tempo e proporciona uma ótima experiência para o usuário, apesar de ser uma demanda recorrente (Principalmente em sistemas de e-commerce) é algo que muitos desenvolvedores as vezes tem dúvidas em como proceder. Através deste post espero sanar essa dúvida quando a implementação for em projetos django.

Para exemplificar melhor, criaremos um projeto simples em django e através dele explicarei como implementar tal funcionalidade, para isso com o pipenv devidamente instalado, executamos o comando abaixo:

$ pipenv --three

Com o nosso ambiente virtual criado execute o comando abaixo para…


Sempre que eu tinha requisições http em alguma biblioteca minha ou em algum projeto que eu estava trabalhando, tive a necessidade de testar esses trechos de código e sempre acabava tendo que realizar requisições reais para testar, pesquisando mais a fundo descobri a requests-mock, uma biblioteca que proporciona mockar requisições web afim de facilitar nossos testes.

Nesse artigo irei utilizar como exemplo uma das minhas bibliotecas, a py-correios, que proporciona verificar status de encomendas dos correios e informações de endereço referentes a um determinado CEP. …

Hudson Brendon

Developer and content creator

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store