Продукт "Şañıraq.kz" - перспективный маркетплейс жилых помещений Казахстана.
На данном спринте мы начнем разрабатывать наш первый MVP (Minimum Valuable Product) данного сервиса. Мы сфокусируемся на двух аспектах нашего маркетплейса - пользователи и объявления:
- Пользователи должны иметь возможность указывать свои персональные данные, чтобы клиенты могли связаться с ними.
- Объявления - это главная ценность продукта. Пользователи должны иметь возможность создавать, изменять, удалять и получать свои объявления.
После завершения данного спринта разверните разработку на railway.
Нужно иметь возможность авторизованному пользователю изменить свои персональные данные.
Ниже приведен пример запроса на API. Должен выполняться HTTP метод PATCH
на роут /auth/users/me
,
в который передается JSON структура. Переданные данные должны сохраняться пользователю, который делает запрос.
Чтобы узнать какой пользователь, нужно извлечь id пользователя из токена.
PATCH /auth/users/me HTTP/1.1
Authorization: Bearer {token}
{
"phone": "+7 700 698 5025",
"name": "Далида Е.",
"city": "Алматы"
}
При успешном сохранении, API должен возвращать HTTP код 200
.
HTTP/1.1 200 OK
Нужно предоставить возможность авторизованному пользователю получать свои персональные данные.
Пример запроса на API: должен выполняться HTTP метод GET
на роут /auth/users/me
.
Аутентификация происходит через заголовок Authorization
, где {token}
- токен авторизованного пользователя.
GET /auth/users/me HTTP/1.1
Authorization: Bearer {token}
При успешном выполнении запроса, API должен возвращать HTTP код 200
, а в теле ответа JSON структура с данными пользователя.
HTTP/1.1 200 OK
{
"_id": "{user_id}",
"email": "{почта текущего пользователя}",
"phone": "+7 700 698 5025",
"name": "Далида Е.",
"city": "Алматы"
}
Пользователи должны иметь возможность создавать новые объявления.
Пример запроса на API: должен выполняться HTTP метод POST
на роут /shanyraks/
, в который передается JSON структура с данными объявления.
POST /shanyraks/ HTTP/1.1
Authorization: Bearer {token}
{
"type": "rent",
"price": 150000,
"address": "Астана, Алматы р-н, ул. Нажимеденова, 16 – Сарыколь",
"area": 46.5,
"rooms_count": 2,
"description": "Продается 1.5 комнатная квартира. ЖК расположен на правом берегу, не далеко от левого берега.\nДом расположен в хорошей локации. Рядом находятся мечеть Хазрет Султан, Пирамида, аллея тысячелетия, и многое другое.\nдвор закрытый, садик во дворе дома, школы в пешей доступности"
}
При успешном создании объявления, API должен возвращать HTTP код 200
и JSON структура с id
нового объявления.
HTTP/1.1 200 OK
{
"_id": "507f191e810c19729de860ea"
}
Пользователи должны иметь возможность просматривать детали своих объявлений.
Пример запроса на API: должен выполняться HTTP метод GET
на роут /shanyraks/{id}
, где {id}
- идентификатор объявления.
GET /shanyraks/{id} HTTP/1.1
При успешном выполнении запроса, API должен возвращать HTTP код 200
и JSON структура с данными объявления.
HTTP/1.1 200 OK
{
"_id": "507f191e810c19729de860ea",
"type": "rent",
"price": 150000,
"address": "Астана, Алматы р-н, ул. Нажимеденова, 16 – Сарыколь",
"area": 46.5,
"rooms_count": 2,
"description": "Продается 1.5 комнатная квартира. ЖК расположен на правом берегу, не далеко от левого берега.\nДом расположен в хорошей локации. Рядом находятся мечеть Хазрет Султан, Пирамида, аллея тысячелетия, и многое другое.\nдвор закрытый, садик во дворе дома, школы в пешей доступности",
"user_id": "{user_id пользователя создавшего объявление}"
}
Пользователи должны иметь возможность изменять данные своих объявлений.
Пример запроса на API: должен выполняться HTTP метод PATCH
на роут /shanyraks/{id}
, в который передается JSON структура с новыми данными объявления.
{id}
- идентификатор объявления.
PATCH /shanyraks/{id} HTTP/1.1
Authorization: Bearer {token}
{
"type": "rent",
"price": 250000,
"address": "Астана, Алматы р-н, ул. Нажимеденова, 17",
"area": 38.5,
"rooms_count": 2,
"description": "СРОЧНО!!!\nПродается 1.5 комнатная квартира. ЖК расположен на правом берегу, не далеко от левого берега.\nДом расположен в хорошей локации. Рядом находятся мечеть Хазрет Султан, Пирамида, аллея тысячелетия, и многое другое.\nдвор закрытый, садик во дворе дома, школы в пешей доступности"
}
При успешном изменении данных объявления, API должен возвращать HTTP код 200
.
HTTP/1.1 200 OK
Пользователи должны иметь возможность удалять свои объявления.
Пример запроса на API: должен выполняться HTTP метод DELETE
на роут /shanyraks/{id}
, где {id}
- идентификатор объявления.
DELETE /shanyraks/{id} HTTP/1.1
Authorization: Bearer {token}
При успешном удалении объявления, API должен возвращать HTTP код 200
.
HTTP/1.1 200 OK