1. *.iml файлы тоже в гитигнор
2. case без default ветки
3. writeResponse нарушает единственность ответственности, у тебя на уровень выше должен быть разбор сначала url, где определяется тип сервиса, потом для каждого сервиса разбор content type(whether service только json как я понял), потом отдельные обработчики для разных вызовов, которые вызывают конкретный сервис
4. Обработчики тоже в разные классы