Skip to content

Latest commit

 

History

History
64 lines (41 loc) · 3.46 KB

README.md

File metadata and controls

64 lines (41 loc) · 3.46 KB

CYBERZILLA API task

Swagger

Swagger — это фрэймворк для описания, документирования и визуализации REST API.

Доступ к документации

Для того, чтобы получить доступ к документации, необходимо перейти по ссылке вида https://{{ .Domen }}/swagger/index.html

Генерация документации локально

Для того, чтобы сгенерировать документацию локально, необходимо выполнить команду

make generate_swagger_docs

Запуск

Для запуска потребуется установленные go и docker-compose. Запуск приложения производится коммандой

make up

Применить миграции

make migrate

Пересоздать базу данных

make recreate_db

Для того, чтобы протестировать 3-е заданием, необходимо запустить тестовый файл в корневом каталоге

go test

Общая информация

  • Не использовать глобальные переменные.
  • Считывание конфига для БД и токенов авторизации из файла json или yaml (на свой вкус), без использования внешних библиотек для конфигурации.
  • Желательно использовать SQL запросы, а не ORM (sqlx и прочие мапперы данных в структуру ORM не считаются).
  • Тесты приветствуются, но не обязательны (если будете писать, всё покрывать тестами не нужно).
  • Нам важно узнать ваши реальные знания, а не знания фреймворков и 3party библиотек.
  • Все задания можно выполнить в рамках одного приложения.

Задание 1:

API TODO для добавления списка дел, токены используются, чтобы todo list был многопользовательским, списки дел хранить в БД. Токены разрешить передавать как в заголовке Authorization, так и через url ?token=

  • GET /todos - получить список TODO
  • POST /todos - добавить запись в список
  • GET /todos/1 - получить запись с ID 1
  • PUT /todos/1 - отредактироовать запись с ID 1
  • DELETE /todos/1 - удалить запись с ID 1

Задание 2:

API для проверки прокси адреса (токены использовать не нужно)

POST /check - проверка прокси

в body отправляется список ip:port, на выходе нужно получить json ответ, какая работает, а какая нет. обязательна проверка на валидный IP и порт, хост неймы не принимать.

Задание 3: (можно выполнить просто в формате test файла)

Парсинг данных с апи https://httpbin.org/get в структуру и вывод структуры в консоль.