As described earlier, on our home page, we want to show our visitors some weather and currency / foreign exchange data. We will build the mock API using faker in this section.
Weather API
const express = require("express");
const router = express.Router();
const faker = require("faker");
function generateWeatherData(city) {
return {
coord: { lon: faker.random.number(180), lat: faker.random.number(180) },
temp: faker.random.number({ min: 273, max: 315 }),
feels_like: faker.random.number(45),
temp_min: faker.random.number(273),
temp_max: faker.random.number(300),
pressure: faker.random.number(100),
humidity: faker.random.number(100),
name: city || faker.address.city(),
};
}
router.get("/:city", function (req, res, next) {
res.json(generateWeatherData(req.params.city));
});
module.exports = router;
The currency API
const express = require("express");
const router = express.Router();
const faker = require("faker");
function generateExchangeRateData() {
return [
{
currency: "EURO",
value: faker.random.number(300),
},
{
currency: "YEN",
value: faker.random.number(300),
},
{
currency: "DOLLAR",
value: faker.random.number(300),
},
];
}
router.get("/", function (req, res, next) {
res.json(generateExchangeRateData());
});
module.exports = router;
Import the files into the app.js and hook them up to the router.
const weatherRouter = require("./routes/weather");
const currencyRouter = require("./routes/currency");
Mapping to the routes
app.use("/api/weather/:city", weatherRouter);
app.use("/api/currency/:local", currencyRouter);