Crawler Backend é utilizado para realizar consulta de frases no site https://quotes.toscrape.com.
- Ruby (3.1.1)
- Rails (6.0.4)
- bundler (2.3.7)
- mongodb (5.0.6)
Na pasta raiz do projeto, execute bundle install
para instalar as dependências. Em seguida, adicione um arquivo .env
com o seguinte código:
export ACCESS_TOKEN=MEU_TOKEN_DE_ACESSO
Onde MEU_TOKEN_DE_ACESSO
é um token seguro gerado por você. Por exemplo, usando SecureRandom:
SecureRandom.urlsafe_base64(32)
Em seguida, execute rails s
para iniciar o servidor. Para fazer requisições para o servidor, é possível utilizar o arquivo api_requests.http
junto com o Rest client, ou utilizar um serviço como o Postman.
O endpoint para fazer requisições ao servidor é: GET {{URL_BASE}}/quotes/:searh_tag
Foi utilizado um único documento (Quotes), com dois atributos: tag
(string, indexada para propósito de consulta) e content
(Hash).
O crawler utiliza nokogiri pra percorrer o documento. Basicamente, a action show
do quotes_controller dará um find_by na search_tag
informada. Caso ainda não exista, será criado um novo registro do documento Quotes passando a tag como argumento. Então um callback executado em um before_create
irá pegar os dados no site de citações e converter para o formato:
{ quotes: [
{
quote: 'frase',
author: 'nome do autor',
author_about: 'link para perfil do autor',
tags: ['tag1', 'tag2']
}
]}
e salvando-o na coluna content
.