Разработать и поднять простой API-сервер с базой данных

Александр8 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
31.03.2021

Требуется написать и поднять сервер с простейшей базой данных.

База содержит 2 НЕ связанные таблицы:

1. SerialKeysTable - список серийных ключей.

SerialKey - строка, 300 символов.

DeviceId - строка, 300 символов.

IsActive - булевое.

2. UnauthorizedTriesTable - попытки активации просроченных ключей.

SerialKey - строка, 300 символов.

DeviceId - строка, 300 символов.

DateTime - дата и время попытки авторизации

Сервер должен обрабатывать 4 простых GET запроса:

1. Создание нового ключа

Эндпоинт: /AddSerialKey?key='someKey'&pass='adminPass'

Параметры:

1. key - строка завернутая в base64 (не обязательный)

2. pass - пароль для запроса, хардкодом.

Описание: Добавляет в базу данных новую запись с указанным серийным ключем.

IsActive при создании в состоянии False.

Если параметр key пуст или отсутствует - то сгенерировать случайный ключ на 300 символов, любым способом.

Результат: 200 и указанный или сгенерированный ключ.

Возможные ошибки:

1. 400 Такой ключ уже есть.

2. 401 Не верный пароль

2. Активация серийного ключа.

Эндпоинт: /UseSerialKey?key='someKey'&deviceId='someDeviceId'

Параметры:

1. key - строка завернутая в base64

1. deviceId - строка завернутая в base64

Описание: Ищет в базе ключ. Если ключ есть, то изменяет его IsActive на True и вписывает deviceId.

Если ключа нету или IsActive уже равен True, выдать ошибку 404 и сделать записть в таблице UnauthorizedTriesTable.

Результат: 200.

Возможные ошибки:

1. 404

3. Удаление серийного ключа.

Эндпоинт: /DeleteSerialKey?key='someKey'&pass='adminPass'

Параметры:

1. key - строка завернутая в base64

2. pass - пароль для запроса, хардкодом.

Описание: Удаляет указанный ключ из базы.

Результат: 200.

Возможные ошибки:

1. 404 Ключ не найден.

2. 401 Не верный пароль.

4. Получение данных из таблицы UnauthorizedTriesTable.

Эндпоинт: /GetUnauthorizedTries?offset=0&count=100&pass='adminPass'

Параметры:

1. offset - сдвиг по записям

2. count - кол-во записей

3. pass - пароль для запроса, хардкодом.

Описание: Получить указанное кол-во записей со сдвигом

Результат: 200 и список записей.

Работать все должно на linux-хостинге. Данные хостинга будут предоставлены исполнителю.

Заявки фрилансеров