Skip to content

boborikin/photo_manager_api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Photo Manager API

Запуск


Скопировать данные из файла .env.example в файл .env и изменить данные на ваши

Для сборки и запуска

docker-compose up -d 

Проект доступен по ссылке ниже:

http://localhost:8000/

Методы API

Регистрация пользователя

curl -X POST 'http://127.0.0.1:8000/auth/register/'\
   -H 'Content-Type: application/json' \
   -d '{"username":"<username>","password":"<password>",
   "email":"<email>","first_name":"<first_name>","last_name":"<last_name>"}'

Вход пользователя

curl -X POST 'http://127.0.0.1:8000/auth/login/'\
   -H 'Content-Type: application/json' \
   -d '{"username":"<username>","password":"<password>"}'

Вернется значение access. Данное access значение используется для получения/добавления данных.

Добавление фотографии

curl -XPOST 'http://127.0.0.1:8000/api/v1/photos/' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer <access>' \
  -H 'Content-Type: multipart/form-data' \
  -F 'picture=@<picture_url>' \
  -F 'latitude=<value>' \
  -F 'longitude=<value>' \
  -F 'description=<value>' \
  -F 'people_list=<value>, <value>' \
  -F 'upload_date=<datetime>'

Получение списка фотографий

curl -XGET '127.0.0.1:8000/api/v1/photos/' -H 'Authorization: Bearer <access>'

Получение информации о фото с метаданными по ID

curl -XGET '127.0.0.1:8000/api/v1/photos/<id>/' -H 'Authorization: Bearer <access>'

Получение списка фотографий с сортировкой / фильтрацией:

curl -XGET '127.0.0.1:8000/api/v1/photos/?upload_date_gte=2022-12-18' -H 'Authorization: Bearer <access>'

Параметры:

Доступные варианты сортировки:

ordering=upload_date - по возрастанию
ordering=-upload_date - по убыванию

Доступные варианты фильтрации даты:

upload_date=2022-12-18 - дата создания
upload_date_gte= - дата создания больше или равно
upload_date_lte= - дата создания меньше или равно
upload_date_gt= - дата создания больше чем
upload_date_lt= - дата создания меньше чем

Доступные варианты фильтрации геолокации:

geolocation=Египет - название города/улицы/страны вводятся русскими буквами. При этом необязательно вводить полное название города/улицы/страны, можно ввести, например Егип, и фильтрация будет происходить по неполному названию. Не чувствительно к регистру.

Доступные варианты фильтрации имен людей на фото:

people_list=John - Вводите имя человека.
При этом необязательно вводить полное имя, можно ввести часть и фильтрация будет происходить по неполному имени. Не чувствительно к регистру.

Для удобства тестирования и просмотра всего перечня функций


Мною была добавление документация с помощью drf-yasg.

Доступно как Swagger, так и Redoc документация.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages