Content-Length: 304633 | pFad | http://github.com/EvilLord666/WebLiFo

D8 GitHub - EvilLord666/WebLiFo: Lifo (stack) with Web interface (REST API) and Postgres
Skip to content

Lifo (stack) with Web interface (REST API) and Postgres

License

Notifications You must be signed in to change notification settings

EvilLord666/WebLiFo

Repository files navigation

WebLiFo

Web-интерфейс (REST API) для управления LIFO (Last In First Out - стэк), написанный на go. WebLiFo REST API оперирует ресурсом lifo - /api/lifo

1. Основные характеристики объектов можели данных lifo и item

  • наименование (название стэка) - поле name (string);
  • описание (краткая характеристика) - поле description (string)
  • размер (глубина) lifo в ячейках - size;
  • элементы стека - item тип данных (т.е. то что находится в ячейке LIFO) - []byte

2. Ограничения

  • мы не задаем ограничения элементов стэка по размеру, т.е. элементами стэка могут быть слайсы байт произвольной длины (размера);
  • данные будут храниться в таблицах БД (Postgres), мы предполагаем, что данные будут небольшими (не более нескольких кБ), поэтому мы храним их напрмую в колонке БД, в случае если предполагается, что размер данных большой, необходимо использовать STREAM;
  • для обеспечения возможности добавления извлечения элементов из стэка без необходимости индексировать все элементы они будут храниться в виде односвязного списка т.е. у каждого item будет колонка previuos_item_id (у верхнего будет NULL), поэтому при извлечении/добавлении нового элемента в стэк потребуется отредактировать только 1 элемент из таблицы items.

3. Описание API для управления стэками

  • GET /api/lifo - возвращает коллекцию метаинформации (без items) стэков (без элементов)
  • GET /api/lifo/{id} - возвращает метаинформацию по стэку по идентификатору {id}
  • GET /api/lifo/{id}/items - возвращает стэк со всеми его элементами
  • POST /api/lifo - создает новый пустой стэк;
  • PUT /api/lifo/{id} - редактирует метаинформацию стэка;
  • DELETE /api/lifo/{id} - удаляет стэк со всеми его элементами;
  • POST /api/lifo/flush - выполняет очистку стэка (удаляет его элементы);
  • POST /api/lifo/{id}/push - добавляет элемент в стэк с идентификатором {id};
  • POST /api/lifo/{id}/pop - извлекает элемент из стэка с идентификатором {id}.

4. Запуск в docker-container

  1. Запуск с предварительной сборкой (пересборкой образов)
docker-compose up --build
  1. Удаление ранее собранных образов
docker-compose down

Доступ к Web API можно осуществить по flhtce: localhost:8765









ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/EvilLord666/WebLiFo

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy