Для работы приложения необходим запущенный инстанс MongoDB.
Убедитесь, что Вы указали URI инстанса в файле utils/config.js
.
Пример: mongodb://localhost:27017/api
Перед первым запуском приложения необходимо создать базу и заполнить ее информацией из database_initialization/conferences.json
.
Если Вы находитесь в папке с проектом, сделать это можно следующей командой:
node database_initialization/initDB.js
Для запуска приложения наберите
node app/server.js
В конфигурационном файле utils/config.js
можно указать host и port, на котором будет запущен сервер. Далее подразумевается,
что сервер принимает запросы на localhost:9000.
Для получения данных о всех конференциях достаточно сделать GET запрос на http://localhost:9000/conferences
.
Сервер вернет Вам информацию о конференциях в виде JSON. Для быстрого получения информации о конкретной конференции
по ее названию - запрос на http://localhost:9000/conferences/:title
.
Пример: http://localhost:9000/conferences/PyTennessee
Если Вам необходимо извлечь из базы данные, соответствующие определенным критериям, Вы можете указать их в качестве
параметров запроса в виде
<ключ>=<значение>.
Пример: http://localhost:9000/conferences?attendance=300&location.city=Nashville
Кроме того, в качестве параметров запроса можно указать:
- limit - максимальное количество документов в ответе;
- offset - смещение относительно начала подходящего критериям набора документов.
Пример: http://localhost:9000/conferences?status=ACCEPTED&offset=5&limit=5
Таким образом, можно организовать получение данных из базы "по страницам".
Для более сложных запросов можно обратиться к http://localhost:9000/conferences
с
помощью метода POST с телом запроса в виде JSON.
Пример тела такого запроса:
{
"query": {
"dateFinish": {
"$gt": "2019-02-22T12:00:00.000Z"
}
},
"fields": [
"title",
"projects",
"dateStart",
"dateFinish"
],
"sort": {
"title": 1
},
"limit": 30,
"offset": 0
}
- query - запрос к базе данных MongoDB (мануал);
- fields - поля, которые хотим получить в ответе;
- sort - поля, по которым будет производится сортировка;
- limit - максимальное количество документов в ответе;
- offset - смещение относительно начала подходящего критериям набора документов.
Все параметры можно опускать. В таком случае им будут присвоены значения по умолчанию:
- query - выбор всех документов из коллекции;
- fields - выбор всех полей;
- sort - не сортировать;
- limit - значение, указанное в
utils/config.js
; - offset - значение, указанное в
utils/config.js
.