Hey there, fellow dev! Ready to dive into the world of crypto data? Let's build a slick CoinMarketCap API integration using JavaScript. We'll be using the coinmarketcap-api
package to make our lives easier. Buckle up!
Before we jump in, make sure you've got:
Let's get this show on the road:
mkdir coinmarketcap-integration cd coinmarketcap-integration npm init -y npm install coinmarketcap-api
Time to get our hands dirty. Create an index.js
file and let's start coding:
const CoinMarketCap = require('coinmarketcap-api'); const apiKey = 'YOUR_API_KEY_HERE'; const client = new CoinMarketCap(apiKey);
Now for the fun part - let's fetch some data:
async function getLatestListings() { try { const listings = await client.getLatestListings({limit: 10}); console.log(listings.data); } catch (err) { console.error('Error fetching listings:', err); } } getLatestListings();
Want details on a specific crypto? No problem:
async function getBitcoinDetails() { try { const bitcoin = await client.getQuotes({symbol: 'BTC'}); console.log(bitcoin.data.BTC); } catch (err) { console.error('Error fetching Bitcoin details:', err); } } getBitcoinDetails();
Let's make that data look pretty:
function displayCryptoInfo(crypto) { console.log(` Name: ${crypto.name} Symbol: ${crypto.symbol} Price: $${crypto.quote.USD.price.toFixed(2)} 24h Change: ${crypto.quote.USD.percent_change_24h.toFixed(2)}% `); } // Use this in your getLatestListings function listings.data.forEach(displayCryptoInfo);
Always be prepared for the worst:
async function safeApiCall(apiFunction) { try { return await apiFunction(); } catch (err) { if (err.response) { console.error(`API Error: ${err.response.status} - ${err.response.data.status.error_message}`); } else { console.error('Error:', err.message); } } } // Use it like this safeApiCall(() => client.getLatestListings({limit: 10}));
Let's make this interactive:
const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); function promptUser() { rl.question('Enter a crypto symbol (or "exit" to quit): ', async (symbol) => { if (symbol.toLowerCase() === 'exit') { rl.close(); return; } await safeApiCall(() => client.getQuotes({symbol})) .then(result => { if (result && result.data[symbol]) { displayCryptoInfo(result.data[symbol]); } else { console.log('Crypto not found'); } }); promptUser(); }); } promptUser();
Let's be nice to the API and our app:
const NodeCache = require('node-cache'); const myCache = new NodeCache({ stdTTL: 60 }); async function getCachedData(key, fetchFunction) { const cachedData = myCache.get(key); if (cachedData) return cachedData; const freshData = await fetchFunction(); myCache.set(key, freshData); return freshData; } // Use it like this const bitcoinData = await getCachedData('bitcoin', () => client.getQuotes({symbol: 'BTC'}));
And there you have it! You've just built a robust CoinMarketCap API integration. You're now armed with the power to fetch, display, and interact with crypto data like a pro. Remember, this is just the beginning - there's so much more you can do with this API. Why not try fetching historical data or implementing a price alert system?
For more info, check out:
Now go forth and build something awesome! The crypto world is your oyster. 🚀