Sobes.tech
Назад к вопросам
Senior
7

Опыт с gRPC и REST?

Компании, где спрашивали
SSP Soft

Ответ от нейросети

sobes.tech AI

gRPC — это современный фреймворк для удалённого вызова процедур (RPC), основанный на HTTP/2 и использующий Protocol Buffers для сериализации данных. Он обеспечивает высокую производительность, поддержку потоковой передачи и строго типизированный контракт между клиентом и сервером.

REST — архитектурный стиль для построения веб-сервисов, использующий HTTP методы (GET, POST, PUT, DELETE) и обычно JSON или XML для передачи данных. REST проще в реализации и широко поддерживается.

В Java для gRPC обычно используют официальную библиотеку grpc-java, где описывают сервисы в .proto файлах, генерируют код и реализуют сервер и клиент. Для REST часто применяют Spring Boot с аннотациями @RestController.

Пример gRPC сервиса на Java:

// Сгенерированный интерфейс
public class HelloServiceGrpc {
    public static class HelloServiceImplBase {
        public void sayHello(HelloRequest req, StreamObserver<HelloResponse> responseObserver) {
            HelloResponse response = HelloResponse.newBuilder()
                .setMessage("Hello, " + req.getName())
                .build();
            responseObserver.onNext(response);
            responseObserver.onCompleted();
        }
    }
}

Пример REST контроллера на Spring Boot:

@RestController
public class HelloController {
    @GetMapping("/hello")
    public String sayHello(@RequestParam String name) {
        return "Hello, " + name;
    }
}