Rick and Morty API Java Client

Rick and Mordy on Adult Swim
Padrão

Recentemente, enquanto gastava meu tempo navegando em coisas aleatórias, me deparei com um projeto interessante do Axel Fuhrmann.

Trata-se de uma API Rest para consulta de informações do desenho Rick and Morty do Adult Swim (o qual eu sou fã de carteirinha).

A API traz informações sobre personagens (Characters), episódios e planetas (Locations) relacionados entre si. A forma de consulta e simples e objetiva e eu gostei muito do que pude ver.

Consultando a Documentação da API pude verificar que diversas implementações de clientes nativos para várias linguagens (tais como Python, Ruby, Elixir, etc…)e vi que não havia uma versão Java para tal. Neste momento, resolvi implementar esse cliente nativo em Java. Eis que nasce a Rick and Morty API Java Client.

O cliente e bem simples e consiste em encapsular as chamadas para o serviço de forma intuitiva para cada Objeto desejado. Por exemplo, digamos que queiramos obter informações do Personagem Rick Sanchez, que na API esta relacionado com o ID 1. Faríamos algo como:

// Iniciamos um objeto Character com o ID 1
Character rickSanchez = character.setId(1);
// Atualizamos os dados do modelo
rickSanchez.refresh();
// Verificando o nome do modelo atualmente
assertEquals("Rick Sanchez", rickSanchez.getName());

Da mesma forma, cada relacionamento traz uma lista de Objetos contendo apenas o ID do mesmo e deve ser feito o `refresh` para fazer o fetch das informações da API.

Implementar este cliente foi um exercício interessante e eu gostei muito do resultado. Espero que gostem!

Classe utilitária pra ler e gerar número de código de barras

Link

A um tempo atras precisei lidar com processamento de dados provenientes de código de barra de boleto e, depois de entender que o código de barras não reflete o numero exibido no boleto, resolvi criar esta classe utilitária para fazer a transformação bilateral dos dados.

Nesta classe é possível trabalhar com boletos tradicionais e/ou contas de serviços contratados (luz, água, gás).

Classe: https://gist.github.com/adrianoluis/610d58655c48a187ffaa7ed85cbe0843
Testes: https://gist.github.com/adrianoluis/f25d5ef62c5e9bd1336d58d6f90ad242