Ваше завдання — створити простий мікросервіс для обробки даних відгуків клієнтів. Мікросервіс відповідатиме за управління відгуками клієнтів, зберігання їх у базі даних PostgreSQL і публікацію в темі Kafka. Крім того, мікросервіс реалізує кешування за допомогою Memcached для підвищення продуктивності.
-
Створіть мікросервіс Go з такими кінцевими точками:
- POST /feedback: дозволяє користувачеві надіслати новий елемент відгуку. Кінцева точка має приймати JSON у такому форматі:
{ "customer_name": "Джон Доу", "email": "johndoe@example.com", "feedback_text": "Важливо вчитися у пацієнта, щоб клієнт слідував за вами.", "source": "Веб-сайт" }
Мікросервіс має перевірити вхідні дані, створити унікальний ідентифікатор для елемента відгуку, зберегти елемент у базі даних PostgreSQL і опублікувати його в темі Kafka.
- GET /feedback/{id}: дозволяє користувачеві отримати певний елемент відгуку за його ідентифікатором. Мікросервіс повинен спочатку перевірити кеш Memcached для елемента. Якщо елемента немає в кеші, він повинен отримати його з бази даних PostgreSQL і зберегти в кеші для майбутніх запитів.
-
Використовуйте наступний стек технологій: ( ! якщо він потрібен для реалізації завдання):
- Go
- PostgreSQL для зберігання даних
- Кафка для публікації повідомлень
- Memcached для кешування
JavaScript і React для інтерфейсу- Зв'язок мікросервісу через HTTP
- JWT для автентифікації
-
Мікросервіс повинен повертати відповідні повідомлення про помилки, якщо кінцева точка використовується неправильно або якщо є проблеми з даними.
-
Ви повинні використовувати будь-які відповідні бібліотеки або фреймворки, які вам зручні.
- Застосуйте розбиття на сторінки для /feedback кінцевої точки, щоб обмежити кількість отриманих результатів.
- Додайте модульні тести для кінцевих точок мікросервісу.
- Реалізуйте автентифікацію та авторизацію за допомогою JWT.
- Використовуйте Docker для контейнеризації мікросервісу.
Будь ласка, надайте вихідний код для вашого рішення, включаючи інструкції з налаштування та запуску програми.
Goooood luck!