msklv / TestGoApp

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status

TestGoApp

Sample Go web application

Technology

Requirements

  • Исполняемый файл приложения стартует в докере, пробрасывающим наружу tcp-port
  • На порту висит http сервер, обрабатывающий запросы в REST
  • У сервера два метода POST: /hash и /distance
  • /hash принимает на вход объект json (массив объектов), содержащий URL изображения, и возвращает объект json, содержащий хеш перцептивного типа от полученного изображения (или массив таких объектов)
  • /distance принимает на вход объект json (или массив), содержащий пару хешей изображений и возвращает объект json, содержащий оба хеша и расстояние Хеминга между ними
  • Перцептивный тип хеша позволяет получить у одинаковых изображений хеши в пространстве, где дистанция между ними будет равна 0, для пары различающихся изображений расстояние будет равно степени их разности
  • Хорошо, если вычисления будут параллелиться на все процессоры
  • CI пайплайн: при коммите в гит, запускается процесс поднятия виртуалки в трейвисе, провижинига необходимого окружения на ней, запуск приложения, проходится смок-тест – эндпоинты приложения простреливаются известными значениями по каждому http-методу, анализируется возвращенные значения
  • Смок-тест реализуется чем угодно
  • Артефакт с контейнером доступен на докер-хабе

Docker

Travis CI

License:

See LICENSE.

About

License:MIT License


Languages

Language:CSS 53.5%Language:Go 26.5%Language:HTML 17.7%Language:Dockerfile 2.3%