Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Construindo um BFF com PHP

Construindo um BFF com PHP

Avatar for Tais Duarte

Tais Duarte

August 04, 2024
Tweet

More Decks by Tais Duarte

Other Decks in Technology

Transcript

  1. Prazer, Tais Desenvolvedora a 10 anos Software Engineer na Creditas

    Apoiadora do PHPWomenBR Esposa e Mãe (coruja) do Joaquim @taisreis67
  2. O que é o BFF? 01. De onde veio, onde

    vive e qual problema veio resolver? 🤔
  3. Temos uma comunicação direta, mas agora entre um cliente e

    três APIs (micro serviços) Agora o cliente precisar fazer várias requisições para compor uma página 😔
  4. Com um API Gateway o cliente faz a requisição para

    uma aplicação e ela se encarrega de se comunicar com as outras Além de trazer outros benefícios como segurança 😌
  5. E se tivermos mais clientes? Web API Gateway Account API

    Authentication API Movies API Parceiro Mobile
  6. Com mais clientes nosso API Gateway começa a ficar inflado

    com diversos tipos de requisições diferentes para cada cliente Cada cliente pode ter necessidades diferentes 😔
  7. Qual o benefício do BFF? O cliente terá autonomia para

    poder utilizar os micro serviços de acordo com o que ele precisa independente de outros clientes Cada cliente agora tem sua aplicação personalizada 😉
  8. Qual a desvantagem do BFF? Com a criação de um

    BFF será mais uma aplicação para dar manutenção, monitorar, fazer o deploy… Devemos analisar se temos como manter 🤔
  9. Responsabilidade Se a lógica se repete em vários BFF ou

    se ele está começando a ficar inflado, provavelmente são regras de negócio e devem ficar nos serviços Performance Os endpoints podem ser otimizados para retornarem somente os dados necessários e reduzir o número de requisições Algumas dicas Devo criar um BFF? Se os clientes possuem as mesmas necessidades talvez não seja necessário criar um BFF para cada um
  10. O que vamos usar? Biblioteca PHP para utilizar o GraphQL

    PHP Linguagem para construir a aplicação GraphQL Uma Query Language para APIs GraphQL-PHP TMDB API Uma API pública de dados sobre filmes, séries e entre outros
  11. Sobre o REST O REST (Representational State Transfer) é um

    modelo utilizado para arquitetar APIs que é baseado no protocolo HTTP. Muito utilizado para a comunicação entre o serviço e o cliente
  12. Como funciona? GET PUT POST DELETE /movie:id /movie /movie /movie

    Encontra um filme Atualiza um filme Cria um filme Deleta um filme
  13. Overfetching Retorna mais dados que o necessário para a aplicação

    que fez a requisição Underfetching Às vezes a aplicação precisa fazer mais que uma requisição para conseguir todos os dados Exporsiçao Acaba expondo mais dados do que o necessário Quais os problemas com o REST? Para resolver esses problemas surgiu o GraphQL
  14. O que é GraphQL? É uma Query Language para APIs

    que permite com que o cliente peça exatamente os dados que ele precisa
  15. Como funciona? O cliente faz uma chamada POST para um

    único endpoint passado no body da requisição o que ele precisa Pode ser um pedido para retornar dados (query) ou um pedido para alterar algum dado (mutation) 😉
  16. Minhas referências 🙂 • https://philcalcado.com/2015/09/18/the_back_end_for_front_end_pattern_bff.html • https://philcalcado.com/2019/07/12/some_thoughts_graphql_bff.html • https://medium.com/jeitosanar/backend-for-frontend-uma-estratégia-sob-demanda- para-a-entrega-de-microsserviços-2f12d4cb9e3f

    • https://adevait.com/php/creating-graphql-server-with-php • https://webonyx.github.io/graphql-php/getting-started/ • https://developers.themoviedb.org/3/getting-started/introduction • https://graphql.org/learn/
  17. CREDITS: This presentation template was created by Slidesgo, including icons

    by Flaticon, infographics and images by Freepik Thank you! 😊