Skip to content

Express API for storing and retrieving JSON payloads by short IDs with Supabase as persistent storage.

License

Notifications You must be signed in to change notification settings

DenisArger/ApiNodeJs

Repository files navigation

ApiNodeJs

CI License: MIT

Описание

ApiNodeJs — небольшой HTTP?сервис на Express для сохранения и получения JSON?документов в Supabase. Сервис принимает произвольный JSON, сохраняет его в таблицу jsons_tb, генерирует короткий идентификатор длиной 6 символов и позволяет получать сохранённый JSON по этому идентификатору. Одновременно раздаётся статический контент из папки assets и HTML?страница index.html по корневому маршруту.

Возможности

  • Генерация короткого id (6 символов, nanoid).
  • Сохранение JSON в Supabase.
  • Получение JSON по id.
  • CORS включён по умолчанию.

API

GET /

Возвращает index.html.

GET /get

Возвращает ошибку 400 с сообщением empty id.

GET /get/:id

Возвращает сохранённый JSON по id. Если длина id не 6 символов — 400 (incorrect id). Если объект не найден — 404 (not object).

POST /generate

Сохраняет JSON в Supabase и возвращает status и сгенерированный id. Если тело отсутствует — 400 (no body). Если тело не JSON или пустой объект — 400.

Пример:

curl -X POST http://localhost:3000/generate \
  -H "Content-Type: application/json" \
  -d '{"hello":"world"}'

Ответ:

{ "status": 201, "id": "a1B2c3" }

Получение:

curl http://localhost:3000/get/a1B2c3

Требования

Node.js 16+. Проект Supabase с таблицей jsons_tb. Колонка id (text/varchar, уникальное значение). Колонка data (json/jsonb).

Настройка

  1. Установите зависимости.
npm install
  1. Скопируйте файл .env.example в .env и укажите ключи.
SUPABASE_URL="..."
SUPABASE_KEY="..."

Запуск

node express.js

Сервер стартует на http://localhost:3000.

Структура проекта

express.js — HTTP?сервер и маршруты API. supabase.js — интеграция с Supabase. generatorId.js — генерация коротких id. assets/ — статика. index.html — главная страница.

About

Express API for storing and retrieving JSON payloads by short IDs with Supabase as persistent storage.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published