VerifyCat é uma API de validação versátil projetada para lidar com vários tipos de validações, incluindo CPF, CNPJ, URL, E-mails e números de cartão de crédito (até o momento).
VerifyCat é construído usando o framework Gin para lidar com solicitações HTTP e fornecer um servidor web rápido e eficiente. O projeto é estruturado para acomodar diferentes tipos de validação, cada um implementado em um arquivo separado dentro do pacote validate
.
O ponto de entrada principal da aplicação é o arquivo verifycat_api.go
. Ele configura o roteador Gin e define o endpoint para validação em /validate
. A lógica de validação é delegada para manipuladores específicos no pacote validate
.
O pacote validate
contém arquivos individuais (cpf.go
, cnpj.go
, url.go
, email.go
e creditcard.go
) para cada tipo de validação. Esses arquivos contêm a lógica de validação e manipulação de solicitações específicas para seu tipo de validação.
Este endpoint suporta validação para vários tipos de dados. A carga útil deve estar no formato JSON, contendo o type
(tipo de validação) e value
(dados a serem validados).
-
Exemplo de Carga Útil da Solicitação:
{ "type": "cpf", "value": "123.456.789-09" }
-
Exemplo de Resposta:
{ "isValid": true, "message": "CPF" }
-
Exemplo de Solicitação CURL
curl -X POST http://localhost:8080/validate -H "Content-Type: application/json" -d '{"type": "cpf", "value": "123.456.789-09"}'
- Exemplo de Resposta CURL:
{ "isValid": true, "message": "CPF" }
cpf
: Número de identificação brasileiro (CPF)cnpj
: Número de entidade legal brasileira (CNPJ)url
: URLemail
: Endereço de e-mailcreditcard
: Número de cartão de crédito
A API VerifyCat segue os princípios RESTful, incluindo:
-
Recursos Identificáveis: Cada tipo de validação (CPF, CNPJ, URL, etc.) é tratado como um recurso identificável. As operações são realizadas nesses recursos por meio de URLs específicos.
-
Operações HTTP Padrão: Operações CRUD (Criar, Ler, Atualizar, Excluir) são mapeadas para operações HTTP padrão. Neste código, a principal operação é a validação, realizada por meio de uma solicitação POST para o recurso
/validate
. -
Estado Sem Sessão: Cada solicitação do cliente ao servidor contém todas as informações necessárias para entender e processar a solicitação. Não há dependência de estados intermediários entre solicitações.
-
Representação de Recursos: Os recursos são representados em JSON no corpo das respostas HTTP. A resposta é uma representação do estado atual do recurso (por exemplo, se um CPF é válido ou não).
-
HATEOAS (Hypermedia As The Engine Of Application State): Embora o código fornecido não inclua explicitamente links para outros recursos no estilo HATEOAS, o conceito está incorporado no princípio geral de que o cliente interage com a API por meio de representações de recursos e estados fornecidos em respostas.
-
Clone o Repositório:
git clone https://github.com/marcuscarvalhodev/verifycat.git cd verifycat
-
Execute a Aplicação:
go run verifycat_api.go
-
Faça Solicitações à API:
- Use seu cliente de API preferido (por exemplo, cURL, Postman) para enviar solicitações POST para
http://localhost:8080/validate
com a carga útil apropriada.
- Use seu cliente de API preferido (por exemplo, cURL, Postman) para enviar solicitações POST para
Sinta-se à vontade para contribuir abrindo problemas, fornecendo feedback ou enviando pull requests.
Este projeto está licenciado sob a Licença AGPL V3 - consulte o arquivo LICENSE para obter detalhes.