Skip to content
This repository has been archived by the owner on Dec 4, 2024. It is now read-only.
André "Pato" Albanese Junior edited this page Jun 11, 2024 · 10 revisions

👀 Arkhon API Wiki 🗿

Caution

O uso ou desenvolvimento NÃO oficial é desaconselhado devido às frequentes alterações de código, o que pode resultar em comportamentos imprevistos ou falhas críticas, tanto quanto mudança dos nomes, licenças e identificadores.

Sobre

Arkhon é uma plataforma dedicada à criação de plantas baixas digitais, com um foco específico em arquitetura. O projeto arkhon-api constitui o Back-end da nossa plataforma, sendo conduzido por uma API escrita em Golang. Este componente desempenha um papel fundamental na infraestrutura técnica da Arkhon, facilitando a gestão eficiente dos dados e operações essenciais. O projeto foi concebido pela equipe Swibly, visando oferecer soluções tecnológicas acessíveis e eficazes para o campo da arquitetura digital.

Construção via Docker/DockerHUB (Recomendado)

Existem várias maneiras de rodar imagens Docker.

Podemos pegar diretamente do DockerHUB...

docker pull devkcud/arkhon-api:latest

...por fim, rodar a API:

docker run \
    --env POSTGRES_HOST=some-place \
    --env POSTGRES_DB=some-db \
    --env POSTGRES_USER=some-user \
    --env POSTGRES_PASSWORD=some-pass \
    --env POSTGRES_SSLMODE=maybe-disable-maybe-require \
    --env JWT_SECRET=shhhh-its-a-secret \
    -p 8080:8080 \
    devkcud/arkhon-api:latest

Pré-requisitos

Antes de continuarmos, você deve se atentar e verificar se as seguintes ferramentas estão instaladas:

Ferramenta Versão (mínima/testada) Opcional
Go 1.22
Docker 26.1.0 ✔️ (Local)
Make/Makefile 4.4.1 ✔️ (Local)

Tip

Utilize sempre os comandos make (ou tente, pelo menos), pois os scripts são oficialmente suportados pela equipe da Arkhon. Eles automatizam tarefas tediosas e podem realizar outras adicionais.

Processo de Configuração e Construção Localmente (❗️DEPRECIADO❗️)

Warning

O uso da API em ambientes Windows, MacOS/OSX ou outros não baseados em GNU/Linux não é oficialmente suportado e pode não funcionar corretamente.

  1. Primeiramente, devemos clonar o repositório utilizando git:
git clone https://github.com/swibly/arkhon-api
cd arkhon-api

  1. Após estarmos dentro do projeto, devemos fazer algumas configurações prévias

Copie o arquivo .env.example para .env...

cp .env.example .env

...a configuração NÃO É OBRIGATÓRIA, a API é configurada para utilizar um banco local rodando em Docker por padrão e um secret JWT muito simples.

Padrão:

POSTGRES_HOST=localhost
POSTGRES_DB=arkhon-db
POSTGRES_USER=arkhon-db_owner
POSTGRES_PASSWORD=arkhon
POSTGRES_SSLMODE=disable

JWT_SECRET=jwtsecret

Veja a seção de configuração para mais informações.


  1. Proximo passo é construir o binário:
go build -race -o build/api -v ./cmd/api/main.go
# ou
make build

  1. Antes de rodar o projeto, tenha certeza de que o banco está rodando. Você pode subir um banco simples utilizando Docker:
docker compose up -d
# ou
make up

Para derrubar basta docker compose down ou make down.


  1. Então, rode a API:
./build/api
# ou
make run

Tip

Você pode rodar make que irá automaticamente construir o projeto (make build) e executar o projeto (make run).

Por fim, faça requisições na porta (por padrão): 0.0.0.0:8080

Configuração

A API possuí, atualmente, 4 arquivos de configuração escritos em yaml.

São eles:

Esses arquivos de configuração são projetados para ser facilmente modificáveis. Para introduzir variáveis de ambiente (locais ou system-wide) na configuração, basta usar $NOME_DA_VARIAVEL. Por exemplo, no arquivo security.yaml:

# ...
jwt_secret: $JWT_SECRET
# ...
Clone this wiki locally