Estou criando meu próprio aplicativo de "biblioteca online" e recuperando dados de livros usando a API do Google Livros. A API funciona em geral, mas estou tendo problemas especificamente ao pesquisar por ISBN.
Para a maioria dos livros que tentei, a busca por ISBN não retorna resultados. No entanto, se eu usar o ID do livro do Google Livros, o livro é encontrado corretamente.
Gostaria de usar a busca por ISBN — por exemplo, escaneando um código de barras — mas, no momento, essa abordagem não é confiável. Alguém já passou por esse problema ou conhece uma solução alternativa?
Qualquer ajuda será apreciada!
PS: Também testei a API da Open Library e encontrei o mesmo problema com ISBNs que não retornavam resultados.
A função que estou usando:
def search_for_books(isbn, max_results=3):
if not isinstance(max_results, int):
max_results = 3
API_ENDPOINT = 'https://www.googleapis.com/books/v1/volumes'
params = {'q': f'isbn:{isbn}', 'maxResults': max_results}
try:
res = requests.get(API_ENDPOINT, params=params)
return res.json()
except requests.exceptions.RequestException:
return []
Saída quando um ISBN não é encontrado:
{'kind': 'books#volumes', 'totalItems': 0}