Skip to content
This repository has been archived by the owner on Sep 29, 2020. It is now read-only.

Latest commit

 

History

History
36 lines (29 loc) · 2.59 KB

13_README.md

File metadata and controls

36 lines (29 loc) · 2.59 KB

Домашнее задание №13 «API к Календарю»

Необходимо реализовать 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 баллов

Зачёт от 7 баллов