/everydaypic

everydaypic is an image store implementation

Primary LanguageGo

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 Внутренняя ошибка сервиса
[
    {
        // 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

{
    "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 Внутренняя ошибка сервиса

Ошибки сервиса

В случае ошибки, сервис возвращает статус-код ошибки и тело ответа в соответствии со структурой:

{
    "errors": [
        "can't convert 1 to ObjectID: the provided hex string is not a valid ObjectID"
    ]
}