Skip to content

carpet-knight/conference-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Conference-api

Для работы приложения необходим запущенный инстанс 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.

Запросы к API

Простые запросы. Метод GET

Для получения данных о всех конференциях достаточно сделать 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

Таким образом, можно организовать получение данных из базы "по страницам".

"Продвинутые" запросы. Метод POST

Для более сложных запросов можно обратиться к 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.

About

JB Conf Yeti Task

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published