// Experimento da Parte 7 (opcional). Versão com axios das duas funções de // lib/livros.ts do projeto aula-13-dados-api. Copie para lib/ de uma CÓPIA // daquele projeto (nunca para o projeto publicado) e rode `npm i axios@1.20.0`. // Os tipos continuam vindo de lib/livros.ts. import axios from "axios"; import type { Livro, Pagina } from "./livros"; const API_URL = process.env.API_URL ?? "http://localhost:3000"; export async function listarLivros(): Promise { const { data } = await axios.get>(`${API_URL}/livros`, { params: { tamanho: 100 }, }); return data.dados; } export async function buscarLivro(id: number): Promise { // O 404 é resposta prevista no contrato, como na versão com fetch: com // validateStatus, ele deixa de rejeitar e chega aqui para ser examinado. const resposta = await axios.get(`${API_URL}/livros/${id}`, { validateStatus: (status) => status === 404 || (status >= 200 && status < 300), }); return resposta.status === 404 ? undefined : resposta.data; }