Esta API foi desenvolvida em Go e serve como backend para um aplicativo de AMA (Ask Me Anything). Ela utiliza WebSockets para comunicação em tempo real, PostgreSQL como banco de dados, e está containerizada usando Docker. Além disso, o Tern é usado para análise de dependências de segurança.
Antes de começar, certifique-se de ter as seguintes ferramentas instaladas:
Clone o repositório e navegue até o diretório do projeto:
git clone https://github.com/lucasadsr/AMA-server.git
cd AMA-serverConstrua e inicie os containers Docker:
docker-compose up --buildIsso irá configurar e iniciar a API, junto com um container do PostgreSQL.
Crie um arquivo .env na raiz do projeto e configure as seguintes variáveis de ambiente:
WSRS_DATABASE_PORT=
WSRS_DATABASE_USER=
WSRS_DATABASE_PASSWORD=
WSRS_DATABASE_NAME=
WSRS_DATABASE_HOST="localhost"Para iniciar a API localmente, execute:
go run ./cmd/ws/main.goA API estará disponível em http://localhost:8080.
POST /api/rooms- Cria uma nova sala.GET /api/rooms- Retorna uma lista de salas.GET /api/rooms/{room_id}- Retorna detalhes de uma sala específica.
POST /api/rooms/{room_id}/messages- Cria uma nova mensagem em uma sala.GET /api/rooms/{room_id}/messages- Retorna uma lista de mensagens em uma sala.GET /api/rooms/{room_id}/messages/{message_id}- Retorna detalhes de uma mensagem específica.PATCH /api/rooms/{room_id}/messages/{message_id}/react- Adiciona uma reação a uma mensagem.DELETE /api/rooms/{room_id}/messages/{message_id}/react- Remove uma reação de uma mensagem.PATCH /api/rooms/{room_id}/messages/{message_id}/answer- Marca uma mensagem como respondida.
GET /subscribe/{room_id}- Estabelece uma conexão WebSocket para receber atualizações em tempo real sobre uma sala específica.