In Node.js possiamo creare una descrizione dettagliata delle nostre API in un endpoint specifico.
Possiamo gestire tale descrizione con l'ausilio di MongoDB creando documenti specifici in una determinata collezione:
{
"version": "1",
"endpoints": [
{
"path": "/api/1/posts",
"description": "Retrieves a list of recent posts",
"params": [
{
"name": "limit",
"type": "number",
"description": "The number of posts to display",
"example": "GET https://site.tld/api/1/posts/?limit=20",
"returns": {
"type": "json",
"data": {
"title": "string",
"id": "number",
"excerpt": "string"
}
}
}
]
}
]
}
Quindi definiamo una route specifica in ExpressJS:
app.get('/api/:ver([0-9]{1,2})', (req, res) => {
let version = req.params.version;
db.api.findOne({version: version}).then(info => {
res.json(info);
}).catch(err => {
res.sendStatus(500);
});
});