Como consumir serviços em nodejs utilizando fetch-api

Como consumir serviços em nodejs utilizando fetch-api

A Fetch API fornece uma interface para buscar recursos (por exemplo, em toda a rede). Parecerá familiar para qualquer pessoa que tenha usado XMLHttpRequest, porém a nova API oferece um conjunto de recursos mais poderoso e flexível.

const URL = `https://openexchangerates.org/api/latest.json?app_id=${process.env.OPENEXCHANGEAPITOKEN}`;

exports.cotacao = async (req, res) => {
    try {
        const resultado = await fetch(URL)
        req.oexchange = await resultado.json()
        res.status(200).json(req.oexchange)
    } catch (e) {
        res.status(500).json({errors: [{ location: 'cotacao', msg: 'Houve um erro ao acessar a api do open exchange.', param: 'openexchangerates' }]})
    }
};

Está disponível em Node.js e fetch API desde a versão 17.5.0 como uma funcionalidade experimental. Podendo ser ativada via flags e a partir da 18.0.0 já está disponível por padrão (não é necessário utilizar flags).

Depois disso basta remover a lib axios.

npm uninstall axios --save

Agora a aplicação não possui mais nenhuma depedência para fazer requisições e está utilizando apenas o nodejs (javascript) com fetch-api.

Aqui você pode ver mais exemplos de utilização do fetch.