Skip to content

vvmorozova/cities_app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Задание

Необходимо разработать HTTP API, с помощью которого можно:

  • добавлять/удалять в хранилище информацию о городах;
  • запрашивать информацию о городах из хранилища;
  • по заданным широте и долготе точки выдавать 2 ближайших к ней города из присутствующих в хранилище.

При запросе к API на добавление нового города клиент указывает только название города, а в хранилище добавляются также координаты города. Данные о координатах можно получать из любого внешнего API.

Реализация хранилища произвольная.

Как запустить

docker-compose up --build

Как удалить контейнеры с томами

docker-compose down -v

Команды

добавить город curl -X POST -H "Content-Type: application/json" -d '{"name": "New york"}' http://127.0.0.1:5000/cities

удалить город curl -X DELETE -H "Content-Type: application/json" -d '{"name": "Samara"}' http://127.0.0.1:5000/cities

просмотреть инфу про город curl -X GET -H "Content-Type: application/json" -d '{"name": "Iksha"}' http://127.0.0.1:5000/cities

найти расстояние до этой точки от ближайшего города curl -X GET -H "Content-Type: application/json" -d '{"longitude": "86.1735436", "latitude":"6.1735436"}' http://127.0.0.1:5000/nearest_cities

Принцип работы Есть два контейнера, с базой данных Postgres и с серверной частью проекта. В бд одна таблица

id название города координаты в формате WGS 84

Формат координат выбран такой, так как это первое попавшийся мне пример храния координат в одном поле. У этого контейнера порт 5432 соединен с 5433, так как порт 5432 может быть занят бд Postgres на хосте.

Во втором контейнере приложение на Python3. Основной класс -- City, для обработки данных из бд. Для обработки запросов используется flask. Приложение находится на 5000 порту.

Примечание Клонировать репозиторий стоит в папку с названием cities_app, чтобы контейнеры могли подключиться друг к другу. Название контейнера в docker-compose захардкожено и состоит из названия папки)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published