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

👀 Swibly API Wiki 🗿

Sobre

A Swibly é uma empresa dedicada a criar soluções inovadoras por meio da tecnologia. Fundada com o propósito de transformar desafios complexos em oportunidades, a Swibly se destaca no mercado por sua abordagem centrada no cliente e foco constante em inovação.

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 ✔️ (Local)
Docker 26.1.0 ✔️ (Docker)
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 Swibly. Eles automatizam tarefas tediosas e podem realizar outras adicionais.

Construção via Docker/DockerHUB (Recomendado)

Existem várias maneiras de rodar imagens Docker.

Podemos pegar diretamente do DockerHUB...

docker pull devkcud/swibly-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/swibly-api:latest

Processo de Configuração e Build Local

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.

Esta seção está em desenvolvimento e será atualizada. Caso ainda queria rodar a API localmente siga os seguintes passos e comandos:

Utilizando o Makefile (REQUER Docker):

cp .env.example .env
vim .env # configuração opcional
make up # opcional caso tenha um banco ja existente
make
  • make up: docker compose up -d
  • make: go build -race -o build/api -v ./cmd/api/main.go

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
# ...