Реализовать Express.js приложение по работе с API, обработка GET запросов для получения данных
##Полное описание задачи
У вас есть объект, который описывает структуру персонального компьютера на базе процессора 80286. Необходимо реализовать геттеры внутренних подструктур и свойст этой модели.
Ответ должен быть всегда валидным JSON, например при отдаче строки, она должна быть в двойных кавычках (смотрите примеры). В случае ошибки запроса подструктуры которой нет в модели, необходимо возвращать 404
код ошибки, с телом "Not Found"
. Нумерация массивов начинается с 0
.
Дополнительно необходимо реализовать метод /volumes
, который подсчитывает, сколько места на каком диске находится, подробности можно увидеть в примерах.
Структуру модели, можно получить ТУТ https://gist.githubusercontent.com/isuvorov/ce6b8d87983611482aac89f6d7bc0037/raw/pc.json
Совет, так как данная структура может быть изменена в процессе, необходимо регулярно обновлять её в программе. Или разработать механиз, автоматического скачивания при старте веб-сервера.
Например так:
const pcUrl = 'https://gist.githubusercontent.com/isuvorov/ce6b8d87983611482aac89f6d7bc0037/raw/pc.json';
let pc = {};
fetch(pcUrl)
.then(async (res) => {
pc = await res.json();
})
.catch(err => {
console.log('Чтото пошло не так:', err);
});
###Примеры работы API
- Пример 1
/
- Status 200
{
"board": ... < JSON ИЗ СТРУКТУРЫ > ...,
"monitor": null
}
- Пример 2
/ram
- Status 200
{
"vendor": "CTS",
"volume": 1048576,
"pins": 30
}
- Пример 3
/ram/vendor
- Status 200
"CTS"
- Пример 4
/ram/someField
- Status 404
Not Found
- Пример 5
/monitor
- Status 200
null
- Пример 4
/volumes
- Status 200
{
"C:":"41943040B",
"D:":"16777216B"
}
то есть все диски с одинаковой буквой, нужно суммировать