Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/luizfonseca/brazil-api

A simple API to handle the most common verifications in forms like CEP, email and others through SSL.
https://github.com/luizfonseca/brazil-api

Last synced: 2 days ago
JSON representation

A simple API to handle the most common verifications in forms like CEP, email and others through SSL.

Awesome Lists containing this project

README

        

Brazil API
==========

Validação de dados via API usando HTTPS (importante se você estiver usando SSL). Ao invés de você inserir 2 libs pra verificar, você pode fazer um requisição a API. :)

Build Status
------------
[![Build Status](https://travis-ci.org/runeroniek/brazil-api.png?branch=master)](https://travis-ci.org/runeroniek/brazil-api) [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/runeroniek/brazil-api)

___

Colabore!
---------

Escrevi isto pra ser open-source! Se você tem novas ideias de validações (ou até uma lib JS mínima que faça esses checks - ops!), abra um issue/envie um pull request! Só tenha certeza de que os testes passem (o que significa que você tem que escrever se implementar algo).

**Sinta-se livre para fazer o que quiser com o projeto.**

____

O que você vai precisar?
------------------------

O que eu utilizei pra fazer a API? A lista do que você vai precisar pra rodar é a seguinte:

**Se você NÃO conhece ruby nem rails**
- Aqui tem um guia bem legal: http://www.maujor.com/railsgirlsguide/install.php

**Se você já conhece Ruby on Rails:**
- Ruby 1.9.3
- GIT
- Sinatra

**Após instalar Ruby & GIT**

- Clone o repositório: `git clone git://github.com/runeroniek/brazil-api` e entre no diretório /brazil-api
- Instale o sinatra: (`gem install sinatra`)
- Dentro do diretório da api, rode o comando `bundle install`
- Para rodar o servidor, use `shotgun api.rb`
- Pronto, a api está rodando no teu servidor local! Cheque a URL (geralmente `http://localhost:9393`)

**Para adicionar novas validações**

- Crie um teste para a validação no diretório `spec/`, seguindo o seguinte padrão: `validator_SUAVALIDACAO_spec.rb`
- Escreva os testes, antes de criar a validação e rode-os (os testes) usando `rspec spec`.
- Veja os testes falhar (já que não há implementação ainda) e aí sim: crie seu validador em `lib/validators/SUAVALIDACAO.rb`
- Faça um require da sua validação no arquivo `lib/validator.rb` ( algo como `require 'validators/SUAVALIDACAO'` )
- Certifique-se que sua validação possui o método `def as_json`, siga os exemplos dos outros validadores.
- Adicione a query string na classe que está em `lib/response.rb`, seguindo o mesmo formato.
- Pronto, só fazer a validação na URL. Pode ficar assim: `http://localhost:9393/?validacao=SUA_VALIDACAO`.

___

Validações que já foram implementadas
-------------------

**Obs.:** *Substitua XXX pelo valor que quiser checar*

**Busca por CEP**

**Exemplo:** Requisição GET para ```https://brazilapi.herokuapp.com/api?cep=XXX```
A resposta será um JSON se o CEP for válido e existir (no caso abaixo, utilizei o CEP `78132-500`:

```json
[{
"cep":
{
"valid":true,
"result":true,
"data":
{
"id": "4785",
"cidade": "Várzea Grande",
"logradouro": "Nove",
"bairro": "Cohab Sete de Maio",
"cep": "78132-500",
"tp_logradouro": "Rua",
"cidade_sem_acento": "varzea grande",
"uf": "mt"
},
"message":""
}
}]
```

**Validação de CPF**
**Exemplo:** Requisição GET para ```https://brazilapi.herokuapp.com/api?cpf=XXX```
A resposta será um JSON:

```json
[{
"cpf":
{
"valid": true,
"value": "11111111111"
}
}]
```

**Validação de Email**
**Exemplo:** Requisição GET para ```https://brazilapi.herokuapp.com/api?email=XXX```
A resposta será um JSON:

```json
[{
"email":
{
"valid": true,
"value": "[email protected]"
}
}]
```

**Verificar todos os anteriores**
**Exemplo:** Você pode usar todos os anteriores se quiser validar tudo de uma vez:
Requisição GET para ```https://brazilapi.herokuapp.com/api?email=XXXX&cep=XXX&cpf=XXX`

A resposta será um JSON com a união de todos os anteriores:

```json
[
{
"email":
{
"valid": true,
"value":"[email protected]"
}
},

{
"cep":
{
"valid": true,
"result": true,
"data":
{
"DADOS DO CEP"
}
}
},

{
"cpf":
{
"valid": true,
"value": "11111111111"
}
}]

```