Beagle gRPC para iOS

Este framework fornece um cliente para comunicar com o Beagle usando gRPC.

Beagle gRPC disponível no CocoaPods

Plataformas Suportadas

As plataformas suportadas são as mesmas do Beagle. O Beagle gRPC utiliza o gRPC Swift e depende do Swift versão 5.2 ou superior.

NetworkClientGRPC

Esta classe implementa o protocolo NetworkClient utilizando gRPC. Para um NetworkClientGRPC são necessários os seguintes parâmetros:

ParâmetrosDescriçãoObrigatório
grpcAddressEndereço do servidor gRPC. O host e a porta especificados aqui serão utilizados para criar o canal de comunicação gRPC. A URL das requisições devem ter este parâmetro como prefixo, caso contrario as requisições serão encaminhadas para o customHttpClient.
customHttpClientNetworkClient alternativo, utilizado para tratar as requisições que não são gRPC.
defaultCallOptionsValores padrões para todas as requisições gRPC, por exemplo, aqui você pode definir headers estáticos e o limite de tempo das requisições. Consulte o gRPC Swift para ver todas as opções disponíveis.
interceptorsObjeto responsável por criar interceptores para cada RPC. Interceptores permitem que requisições e respostas sejam observadas, modificadas ou descartadas se necessário.

Como utilizar o Beagle gRPC em seu projeto iOS

Adicione a dependência no seu Podfile

pod 'BeagleGRPC'

Após adicionar o Beagle gRPC como dependência no seu projeto, instancie um NetworkClientGRPC e altere o Beagle.dependencies para utilizá-lo.

import Beagle
import BeagleGRPC

let dependencies = BeagleDependencies()
Beagle.dependencies = dependencies

let baseUrl = "http://0.0.0.0:50051"
dependencies.networkClient = NetworkClientGRPC(
    grpcAddress: baseUrl,
    customHttpClient: nil
)
dependencies.urlBuilder = UrlBuilder(
  baseUrl: URL(string: baseUrl)
)

Agora você está pronto para conectar ao seu servidor gRPC.

BeagleScreenViewController(.remote(.init(url: "/home")))