Я пытаюсь написать службы, использующие как gRPC, так и REST. Технологии реализации: Java, Spring Boot и gRPC. Ниже приведен пример сценария использования:
Предполагается, что существуют внешние клиенты, которые могут взаимодействовать с приложением через конечные точки REST и / или путем создания gRPCзвонки. Внутренне существуют службы «шлюза», которые предоставляют внешние интерфейсы и заботятся о транспортировке / маршрутизации запросов и ответов между внешними клиентами и службами «домена», которые выполняют фактическую работу. Внутренние службы будут взаимодействовать через gRPC.
Внешний клиент не знает, как все обрабатывается внутренне, а доменные службы не имеют внешних интерфейсов.
Мне удалось получить базовый запрос/ шаблон ответа для сквозной работы, но я не уверен, как реализовать шаблоны, которые включают потоковую передачу (в любом направлении). На самом деле, это не совсем так - я смог получить базовые примеры, представленные на сайте gRPC (https://grpc.io/) для работы.
Вот пример того, что я пытаюсь сделать,что я не могу понять, как заставить работать:
Служба «домен» имеет возможность возвращать коллекцию объектов (то есть источник потока) запрашивающей стороне. Домен использует логику gRPC дляпредоставить эти объекты вызывающему клиенту (в данном случае «шлюзу»). Внешний клиент выполняет REST-вызов к службе шлюза, чтобы запросить коллекцию объектов, предоставляемую службой домена.
Насколько я могускажем, домен и шлюз общаются друг с другом просто отлично, но есть проблема, когда он пытается отправить информацию обратно внешнему клиенту. Для получения более подробной информации о коде и ошибках, с которыми я столкнулся, пожалуйста, смотрите связанныеПроблема Проблема возврата потока ответов от службы gRPC клиенту RESTful .
Один вопрос, который приходит на ум:можно ли использовать REST для обработки потоковой информации (в любом направлении)? Если нет, какие варианты у меня есть, если есть? Если это возможно, как мне это сделать?
ОБНОВЛЕНИЕ :
Я сделал обновления для упомянутого сопутствующего сообщения СО, размещенного выше.