BeagleWidget

Nessa seção, você encontrará informações sobre como usar o BeagleWidget no Beagle Flutter.

O que é?

Um widget que mostra conteúdos do Beagle. Este é o ponto de entrada para carregar telas server-driven e componentes visuais server-driven para sua aplicação Flutter. O BeagleWidget é um StatefulWidget que renderiza widgets através de um JSON local ou uma requisição HTTP.

Veja como a estrutura é representada:

AtributoTipoObrigatórioDefinição
keyKeyIdentificador para Widgets, Elements e SemanticsNodes.
screenRequestBeagleScreenRequestProvê a url, method, headers e body para a requisição.
screenJsonStringRepresenta uma tela local para ser mostrada.
onCreateViewOnCreateViewListenerFunção que retorna o BeagleView atual.

BeagleScreenRequest

É uma classe usada para fazer requisições no Beagle Flutter. Ela implementa o BeagleNetworkOptions que traz os atributos method, headers e strategy. Também, a classe BeagleScreenRequest tem as propriedades url e body. Veja a estrutura abaixo:

AtributoTipoObrigatórioDefinição
urlStringRepresenta a URL relativa do servidor da requisição.
bodyStringConteúdo que vai ser entregue pela requisição.
headersMap<String, String>Headers para serem usados na requisição.
methodBeagleHttpMethodMétodo Http para indicar a ação desejada para ser perfomada por um dado recurso. Pode ser put, get, post, delete, patch e head.
strategyBeagleNetworkStrategyEstratégia de cache aplicada para a requisição. Pode ser beagleCacheOnly, beagleWithFallbackToCache, networkWithFallbackToCache, cacheWithFallbackToNetwork, cacheOnly, networkOnly e cacheFirst.

OnCreateViewListener

Uma função que segue a estrutura void Function(BeagleView view) e provê a atual BeagleView quando está disponível.

Como usar?

Voce pode usá-lo em qualquer lugar que exiba conteúdo server-driven.

  • Posicione o BeagleWidget lá informando pelo menos um JSON local ou uma BeagleScreenRequest com a url do seu BFF.

No exemplo abaixo, você vai ver o BeagleWidget no corpo do widget Scaffold:

Scaffold(
  appBar: AppBar(
    title: const Text('Beagle Sample'),
  ),
  body: BeagleWidget(
    screenRequest: BeagleScreenRequest('components'),
  ),
);