Essa API calcula o menor ângulo arredondado entre os ponteiros da hora e minuto de um relógio.
Ela recebe os valores via param paths (parâmetros de caminho), ou seja, os valores são informados como se fossem parte do endpoint. Seu retorno é um objeto json com um atributo nomeado de angle
e seu conteúdo é o resultado do cálculo.
A requisição pode ser feita por qualquer cliente que consiga abrir uma conexão HTTP:
-
Browser's: Qualquer navegador moderno deverá ser capaz de requisitar a rota, basta digitar a URL na barra de endereços e buscar;
-
Swagger: Esta API conta com a implementação do swagger, na qual, por dentro da própria interface dele é possível realizar as requisições (depois de executar a API, o swagger se encontrará disponível na URL: http://localhost:8080/swagger/index.html;
-
cURL: Com o comando
curl <url>
também é possível fazer a requisição via terminal ou em scripts. Ou com qualquer outra ferramenta CLI que possa ser um cliente HTTP.
A URL para realizar as requisições via browser ou CLI:
[http://]localhost:8080/v1/rest/clock/<hour>[/<minute>]
O modelo de json a ser retornado:
{
"angle": <value>
}
A infraestrura da API foi projetada para rodar agnosticamente a qualquer "software externo" ou sistema operacional, sendo necessário somente a presença do Docker e Docker Compose. Sendo assim, basta clonar o repositório do projeto e estando na raiz, executar:
docker-compose up -d
Além de colocar a API de pé, este docker compose file criará a instância de um banco de dados PostgreSQL e também de um leve gerenciador de DBMS (Adminer).
Se desejar subir por conta própria o seu banco de dados e gerênciador gráfico, bastará trocar os valores do arquivo de configuração (config.yml
) localizado na raiz do projeto e na hora de executar o compose
, chamar somente a API:
docker-compose up -d api
Caso ainda deseje executar a API standalone (sem docker), na raiz do projeto há um shell script (run.sh
) para ser executado com "./":
./run.sh
Para esse caso, é necessário previamente que tenha o Golang instalado no seu sistema operacional e execute apenas para a primeira vez:
go install 'github.com/swaggo/swag/cmd/swag@latest'
Para entrar no gerênciador gráfico, acesse:
[http://]localhost:8888
E no formulário de login defina os valores:
- System:
PostgreSQL
; - Server:
database
; - Username:
root
; - Password:
root
.
OBSERVAÇÕES:
- O que está envolvido em colchetes (
[]
) é opcional.