API
Chill использует gRPC на основе Protobuf 3 как API для взаимодействия между микросервисами.
Преимущества gRPC:
- Повышенная производительность по сравнению с HTTP REST.
- Поддержка клиентских и серверных потоков сообщений: клиент и сервер могут обмениваться последовательностями сообщений в реальном времени — так же, как обмениваются сообщениями два пользователя при общении в чате.
- Развитая кодогенерация для множества языков программирования: разработчику нужно лишь описать протокол взаимодействия — название методов, принимаемые аргументы и возвращаемые значения — и не нужно вручную заниматься сериализацией и десериализацией запросов и ответов.
Разработка API
В стандартной структуре сервиса Chill все описания API хранятся в папке api. В ней содержатся две подпапки:
public— публичное API сервиса, доступное внешним пользователям.private— приватное API сервиса, доступное только другим сервисам внутри кластера.
В этих папках размещаются файлы .proto с описаниями методов сервиса и моделей.
Кодогенерация
Генерация шаблонов сервера и клиентов производится при синхронизации.