Esta API foi criada para ajudar a desenvolver aplicações que utilizam informações do Skoob.
A API utiliza uma mistura de informações da API do Skoob e web scraping no site da Amazon para obter mais detalhes sobre o livro.
Node.js Express.js Typescript MongoDB CheerioJS Axios
Antes de iniciar o servidor você deve criar um arquivo .env
na raiz do projeto com as seguintes variáveis de ambiente:
SKOOB_AUTH
- Cookies de autenticação de uma conta Skoob- Para conseguir os cookies, acesse o Skoob, faça login, ou crie uma conta, e depois use
document.cookie
no console para copiar os cookies.
- Para conseguir os cookies, acesse o Skoob, faça login, ou crie uma conta, e depois use
MONGO_URI
- URI do banco de dados MongoDB- Exemplo:
mongodb://localhost:27017/skoob
- Exemplo:
Antes de instalar, certifique-se de ter Node.js e Yarn instalados.
Faça o clone do repositório e instale as dependências:
# Clonar repositório
git clone https://github.com/Rapoxo/skoob-api.git
cd skoob-api
# Instalar dependências
yarn
# Iniciar servidor
yarn dev
Rota | Descrição | Tipo de retorno |
---|---|---|
/reviews/users/${userId} |
Retorna todas as resenhas de um usuário. | Review[] |
/reviews/books/${bookId} |
Retorna todas as resenhas de um livro. | Review[] |
/books/${bookId} |
Retorna os dados de um livro. | Book |
/books/${bookId}/price?tag=${amazon_tag} |
Retorna preço e link da Amazon de um livro. A query amazon_tag Pode ser usada para adicionar link de afiliado da amazon. |
Price |
/users/${userId} |
Retorna os dados de um usuário. | User |
/users/${userId}/bookshelf |
Retorna estante de livros de um usuário. | Bookshelf |
/search/books/${query}?limit=${limit} |
Retorna limit livros que contenham o termo query . A quantidade padrão é de 3 livros. |
Book[] |
- Deploy na Vercel
- Rota de preços
- Retorna preço e link da Amazon de um livro
- Faz cache dos preços no banco de dados
- Retorna opções de preço do livro físico e digital (se disponíveis)
- Rota de resenhas
- Lista todas as resenhas de um usuário
- Lista todas as resenhas de um livro
- Por enquanto nenhum bug foi encontrado. Mas se você encontrar um, por favor, envie um issue