Create .env file in root directory and add following values:
SERVER_PORT=8080
MARIA_USER=root
MARIA_PASSWORD=secret
MARIA_HOST=db_domain
MARIA_PORT=3306
MARIA_DB=database
Run
go run app/main.go
Run tests
go test -v
docker-compose up -d --build
Метод получения списка объявлений. На одной странице присутствует 10 объявлений. Возможна сортировка по цене (возрастание/убывание) и по дате создания (возрастание/убывание). Поля в ответе: название объявления, ссылка на главное фото (первое в списке), цена.
Name | Description |
---|---|
page *required |
Номер страницы (номер объявления + 10 штук) |
sort_by | По какому критерию сортировать price /data (по умолчанию price ) |
order | 0 - по убыванию, 1 - по возрастанию (по умолчанию 1) |
Valid
curl http://localhost:8080/api/ayds/all?page=0&sort_by=price&order=1
Invalid
curl http://localhost:8080/api/ayds/all?page=0&sort_by=price&order=2
Status | Response |
---|---|
200 |
Запрос успешно обработан Example Value: {
"ok": true,
"response": [
{
"id": 1,
"title": "title0",
"main_image": "ref0",
"price": 0
},
{
"id": 2,
"title": "title1",
"main_image": "ref3",
"price": 1
},
{
"id": 3,
"title": "title2",
"main_image": "ref5",
"price": 2.13
}
]
} |
400 |
Ошибка запроса Example Value: {
"ok": false,
"error_code": 400,
"description": "Invalid order param"
} |
Метод получения конкретного объявления. Принимает существующий ID объявления. Возвращает ID брони.
Name | Description |
---|---|
id *required |
Cуществующий ID объявления |
fields | Опциональные поля: description, images |
curl http://localhost:8080/api/ads/get?id=1&fields=description
Status | Response |
---|---|
200 |
Запрос успешно обработан Example Value: {
"ok": true,
"response": {
"id": 1,
"title": "title0",
"description": "desc0",
"price": 0
}
} |
400 |
Ошибка запроса Example Value: {
"status": false,
"description": "ID not Found"
} |
Метод создания объявления. Принимает на вход название, описание, несколько ссылок на фотографии(до трех ссылок), цена. Возвращает ID созданного объявления и код результата (ошибка или успех).
Name | Description |
---|---|
title *required |
Название объявления |
description | Описание объявления |
images *required |
Ссылки на картинки |
price *required |
Цена |
curl -X POST -d "title=title1" -d "images=ref1,ref2" -d "price=100.01" http://localhost:8080/api/ads/create
Status | Response |
---|---|
200 |
Запрос успешно обработан Example Value: {
"ok": true,
"response": 1
} |
400 |
Ошибка запроса Example Value: {
"ok": false,
"error_code": 400,
"description": "Title not Found"
} |
Классы, отмеченные символами <I>, — interface; отмеченные символами <DS> — data structure. Простые стрелки соответствуют отношениям использования. Стрелки с треугольным наконечником соответствуют отношениям реализации ⬆ Back to Top