GithubHelp home page GithubHelp logo

tarantool-service's Introduction

KV хранилище на базе Tarantool

Описание задания

Реализовать API для KV-хранилища на базе Tarantool.

Описание API

Зарегистрированы следующие эндпоинты:

  • POST /api/login - для получения токена авторизации
  • POST /api/write - для записи данных пачками
  • POST /api/read - для чтения данных пачками

Схема API представлена в файле openapi.yaml

Запуск проекта

  1. Необходимо создать .env файл с помощью команды
make env

В файле может задать следующие параметры

TARANTOOL_USER_NAME - логин администратора Tarantool TARANTOOL_USER_PASSWORD - пароль администратора TARANTOOL_PORT - порт Tarantool TARANTOOL_REQUEST_TIMEOUT - таймаут на исполнение запроса к Tarantool

APP_PORT - порт сервиса APP_HOST - хост сервиса TOKEN_TTL - время жизни токена аутентификации APP_SECRET_KEY - секретный ключ приложения для JWT TARANTOOL_ADDRESS=tarantool:4000 - адрес TARANTOOL для приложения

  1. Запустить контейнеры docker
make deploy

Тестирование приложения

Приложение использует протокол HTTP для обмена данными между сервером и клиентом. В качестве токена авторизации используются JWT токены.

Примеры запросов показаны на рисунках ниже:

Все запросы имеют валидацию json

invalid_json.png

У запросов к /write и /read должен указываться токен для доступа к данным, иначе система не пропустит запрос.

Стандартные хедеры:

headers.png

Ответы при невалидном токене:

invalid_token.png token.png

  1. Запросы к /login

empty_data_2.png empty_fields.png invalid_creds.png valid_data.png


Запросы к /read

empty_req.png full_output.png part_output.png token.png

tarantool-service's People

Contributors

vleantonov avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.