An open API service indexing awesome lists of open source software.

https://github.com/bells307/everydaypic

everydaypic is an image store implementation
https://github.com/bells307/everydaypic

clean-architecture golang rest-api

Last synced: 2 months ago
JSON representation

everydaypic is an image store implementation

Awesome Lists containing this project

README

        

# everydaypic
Backend сервиса, хранящего изображения. \
На данный момент находится в активной разработке ...

# REST API
## Получить информацию об изображениях
### Запрос
`GET /v1/image` - получить информацию обо всех изображениях \
`GET /v1/image?id=635c30eade5c7171c3201464&filename=2.jpg` - получение информации с фильтром по ID и имени файла \
`GET /v1/image?id=635c30eade5c7171c3201464&id=63598aa13f78e168669a805c` - получение информации по фильтру с множественными значениями ID
### Ответ
| Код ответа | Описание |
| ---------- | ------------------------- |
| 200 | OK |
| 404 | Изображение(я) не найдены |
| 500 | Внутренняя ошибка сервиса |

```json
[
{
// ID
"id": "63598aa13f78e168669a805c",
// Имя файла
"filename": "1.jpg",
// Метаданные
"metadata": {
// Имя
"name": "test"
}
},
{
"id": "635c30eade5c7171c3201464",
"filename": "2.jpg",
"metadata": {
"name": "ds3"
},
"uploadDate": "2022-10-29T09:28:37.779Z"
}
]
```

## Создать изображение
### Запрос
**Content-Type**: `multipart/form-data`
| Ключ | Значение |
| ---------- | ------------------------- |
| `name` | Имя картинки |
| `filename` | Имя файла (с расширением) |
| `file` | Бинарные данный файла |

`POST /v1/image`
### Ответ
| Код ответа | Описание |
| ---------- | ------------------------- |
| 200 | OK |
| 500 | Внутренняя ошибка сервиса |

При успешном создании, тело ответа содержит информацию о созданной картинке в формате *json*
```json
{
"id": "635cf2454931a105ef56bb76",
"filename": "2.jpg",
"metadata": {
"name": "ds3"
}
}
```

## Получить бинарные данные изображения
### Запрос
`GET /v1/image/:id/download`
### Ответ
**Content-Type:** `application/octet-stream`
| Код ответа | Описание |
| ---------- | ------------------------- |
| 200 | OK |
| 404 | Изображение не найдено |
| 500 | Внутренняя ошибка сервиса |

В теле ответа содержатся бинарные данные файла

## Удалить изображение
На данный момент не реализован ...
### Запрос
`DELETE /v1/image/:id`
### Ответ
| Код ответа | Описание |
| ---------- | ------------------------- |
| 200 | OK |
| 404 | Изображение не найдено |
| 500 | Внутренняя ошибка сервиса |

## Ошибки сервиса
В случае ошибки, сервис возвращает статус-код ошибки и тело ответа в соответствии со структурой:
```json
{
"errors": [
"can't convert 1 to ObjectID: the provided hex string is not a valid ObjectID"
]
}
```