Esse projeto é um webscrapper para sondar informações sobre sites enviados na requisição da API no método /save_info de forma assíncrona. Também recupera as informações colhidas no site websimilar no banco de dados, a partir de um ID feito na requisição do método /get_info.
Antes de iniciar o projeto, você precisa ter o Ruby, Rails e MongoDB instalados em sua máquina. Se você ainda não os instalou, siga os passos abaixo:
- Instale o Ruby: Você pode encontrar instruções para a instalação em https://www.ruby-lang.org/pt/documentation/installation/
- Instale o Rails: Depois de instalar o Ruby, você pode instalar o Rails executando
gem install rails
no terminal. - Instale o MongoDB: Você pode encontrar instruções para a instalação em https://docs.mongodb.com/manual/installation/
Para iniciar o projeto, siga esses passos:
- Clone o repositório:
git clone https://github.com/M6rc0sp/Speedio-Project.git
- Instale as dependências:
bundle install
- Copie o arquivo
template.env
para um novo arquivo chamado.env
e preencha as variáveis de ambiente conforme necessário. - Verifique as configurações do seu Banco no arquivo
.env
e descomente o driver para seu navegador e sistema operacional escolhido. - Se você estiver usando Linux e o driver não abrir, execute o seguinte comando no terminal:
chmod +x ./selenium_drivers/edgedriver/msedgedriver
(ou o driver que você escolheu). - Execute a API:
rails server
- Acesse o local onde a aplicação está rodando, geralmente: http://127.0.0.1:3000.
- A exibição na página servida pelo rails aqui é só para teste, o alert não consegue exibir todos os campos que foram capturados. No desenvolvimento usei do insomnia, mas criei esse html para uma facilitação nos testes.
-
POST /salve_info: Recebe uma
url
como parâmetro. Gera umsearch_id
a partir da URL e inicia uma operação assíncrona para buscar informações sobre o site. Retorna um status HTTP 201 e um corpo de resposta JSON indicando sucesso. -
POST /get_info/:id: Recebe um
id
como parâmetro. Tenta recuperar as informações associadas aoid
fornecido. Se as informações forem encontradas, retorna um status HTTP 200 e um corpo de resposta JSON com as informações. Se as informações não forem encontradas ou estiverem vazias, retorna um status HTTP 404 e um corpo de resposta JSON indicando erro.