Необходимо реализовать HTTP и GRPC API для сервиса календаря.
Методы API в принципе идентичны методам хранилища и описаны в ТЗ.
Для GRPC API необходимо:
- создать отдельную директорию для Protobuf спецификаций;
- создать Protobuf файлы с описанием всех методов API, объектов запросов и ответов ( т.к. объект Event будет использоваться во многих ответах разумно выделить его в отдельный message);
- создать отдельный пакет для кода GRPC сервера;
- добавить в Makefile команду
generate
;make generate
- вызываетgo generate
, которая в свою очередь генерирует код GRPC сервера на основе Protobuf спецификаций; - написать код, связывающий GRPC сервер с методами доменной области (бизнес логикой);
- логировать каждый запрос по аналогии с HTTP API.
Для HTTP API необходимо:
- расширить "hello-world" сервер из ДЗ №12 до полноценного API;
- создать отдельный пакет для кода HTTP сервера;
- реализовать хэндлеры, при необходимости выделив структуры запросов и ответов;
- сохранить логирование запросов, реализованное в ДЗ №12.
Общие требования:
- должны быть реализованы все методы;
- календарь не должен зависеть от кода серверов;
- сервера должны запускаться на портах, указанных в конфиге сервиса.
Можно использовать https://grpc-ecosystem.github.io/grpc-gateway/.
- Makefile заполнен и пайплайн зеленый - 1 балл
- Реализовано GRPC API и
make generate
- 3 балла - Реализовано HTTP API - 2 балла
- Написаны юнит-тесты на API - до 2 баллов
- Понятность и чистота кода - до 2 баллов