O serviço de backend serve a API de entrada, criando ponte entre o Frontend, o serviço gerador de yaml e os serviços terciários de persistência (pg, redis, aws/localstack, etc).
A hierarquia de arquivos segue o seguinte padrão:
- adapters: Conversores de dados internos para uso em serviços externos.
- controllers: Ponte entre a lógica de negócios, serviços externos, adaptadores, e outros.
- db: Helpers de execução de queries no banco de dados.
- interceptors: Helpers executados antes/depois de requests.
- logic: Lógica de negócio.
- ports: Declaração dos requests.
- schemas: Declaração dos tipos de models para coercing.
Caso não tenha uppado antes, volte às instruções dos containers do Docker e rode-os antes.
O ambiente de desenvolvimento utiliza-se do pg-embedded-clj
, criando uma instância in-memory do Postgres. Caso você não esteja no ambiente dev
e já tenha uppado o container do PG, você precisará fazer a seguinte migração:
clj -M:migratus migrate
Veja mais sobre como usar migratus aqui.
Abra um servidor nrepl:
clj -M:back-dev:nrepl # dev
# clj -M:nrepl
Após aberto, conecte seu editor de código ao nrepl e rode o seguinte:
(in-ns 'back.api.server)
(start-system-dev! (build-system-map))