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

APIs === HTTP + PHP + Mezzio

APIs === HTTP + PHP + Mezzio

Nesta palestra apresento argumentos sobre por que o protocolo HTTP, a linguagem PHP e o framework Mezzio1 são as melhores opções para o desenvolvimento de APIs.

Er Galvão Abbott

July 17, 2020
Tweet

More Decks by Er Galvão Abbott

Other Decks in Programming

Transcript

  1. www.galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott

    - 9/6/20 - 1 / 62 APIs === HTTP + PHP + Mezzio Laminas Mezzio logo by Laminas Project php APIs === HTTP + + v. 0.2.0.20200906
  2. Presidente da ABRAPHP – Associação Brasileira de Profissionais PHP Diretor

    da ConFLOSS Diretor da PHP Conference Brasil Evangelista e Contribuidor para a Linguagem Evangelista Laminas Project (auto-intitulado) Embaixador Fedora LATAM Professor Convidado (Especialista) de Pós-Graduação (PR e SC) 25+ anos desenvolvendo sistemas com interface web 20+ destes com PHP 12+ com Zend Framework / Laminas Project Palestrante em eventos nacionais e internacionais Professor de cursos presenciais e a distância Quem?! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/6/20 - 2 / 62 www.galvao.eti.br www.galvao.eti.br APIs === HTTP + PHP + Mezzio
  3. Objetivo CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott

    - 9/6/20 - 3 / 62 www.galvao.eti.br Apresentar argumentos sobre por que o protocolo HTTP, a linguagem PHP e o framework Mezzio1 são as melhores opções para o desenvolvimento de APIs. [1] https://www.galvao.eti.br/do-zend-framework-ao-laminas/ APIs === HTTP + PHP + Mezzio
  4. Objetivo CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott

    - 9/6/20 - 4 / 62 www.galvao.eti.br Critérios Objetivos: APIs === HTTP + PHP + Mezzio
  5. Objetivo CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott

    - 9/6/20 - 5 / 62 www.galvao.eti.br Critérios Objetivos: Confiabilidade [+ Adoção [+ …]] APIs === HTTP + PHP + Mezzio
  6. Objetivo CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott

    - 9/6/20 - 6 / 62 www.galvao.eti.br Critérios Objetivos: Confiabilidade [+ Adoção [+ …]] Vitalidade (Ritmo de Evolução) APIs === HTTP + PHP + Mezzio
  7. Objetivo CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott

    - 9/6/20 - 7 / 62 www.galvao.eti.br Critérios Objetivos: Confiabilidade [+ Adoção [+ …]] Vitalidade (Ritmo de Evolução) Dinamismo (Qualidade de Evolução) APIs === HTTP + PHP + Mezzio
  8. Objetivo CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott

    - 9/6/20 - 8 / 62 www.galvao.eti.br Critérios Subjetivos: APIs === HTTP + PHP + Mezzio
  9. Objetivo CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott

    - 9/6/20 - 9 / 62 www.galvao.eti.br Critérios Subjetivos: Todo o “fanboyismo” que eu tenho direito APIs === HTTP + PHP + Mezzio
  10. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    9/6/20 - 10 / 62 www.galvao.eti.br Por que APIs? APIs === HTTP + PHP + Mezzio
  11. Por que APIs? CC Attribution-ShareAlike 3.0 Unported License by Er

    Galvão Abbott - 9/6/20 - 11 / 62 www.galvao.eti.br Verdadeira separação entre backend e frontend APIs === HTTP + PHP + Mezzio
  12. Por que APIs? CC Attribution-ShareAlike 3.0 Unported License by Er

    Galvão Abbott - 9/6/20 - 12 / 62 www.galvao.eti.br Verdadeira separação entre backend e frontend APIs === HTTP + PHP + Mezzio
  13. Por que APIs? CC Attribution-ShareAlike 3.0 Unported License by Er

    Galvão Abbott - 9/6/20 - 13 / 62 www.galvao.eti.br Verdadeira separação entre backend e frontend APIs === HTTP + PHP + Mezzio X
  14. Por que APIs? CC Attribution-ShareAlike 3.0 Unported License by Er

    Galvão Abbott - 9/6/20 - 14 / 62 www.galvao.eti.br Verdadeira separação entre backend e frontend APIs === HTTP + PHP + Mezzio X
  15. Por que APIs? CC Attribution-ShareAlike 3.0 Unported License by Er

    Galvão Abbott - 9/6/20 - 15 / 62 www.galvao.eti.br Verdadeira separação entre backend e frontend APIs === HTTP + PHP + Mezzio XX
  16. Por que APIs? CC Attribution-ShareAlike 3.0 Unported License by Er

    Galvão Abbott - 9/6/20 - 16 / 62 www.galvao.eti.br Verdadeira separação entre backend e frontend APIs === HTTP + PHP + Mezzio XX Full Stack Developer
  17. Por que APIs? CC Attribution-ShareAlike 3.0 Unported License by Er

    Galvão Abbott - 9/6/20 - 17 / 62 www.galvao.eti.br Verdadeira separação entre backend e frontend APIs === HTTP + PHP + Mezzio XX Full Stack Developer X
  18. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    9/6/20 - 18 / 62 www.galvao.eti.br PROTOCOLO: Por que HTTP? APIs === HTTP + PHP + Mezzio
  19. Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 9/6/20 - 19 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] APIs === HTTP + PHP + Mezzio
  20. Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 9/6/20 - 20 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 30 anos de Mercado Está na base da web APIs === HTTP + PHP + Mezzio
  21. Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 9/6/20 - 21 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 30 anos de Mercado Está na base da web Vitalidade (Ritmo de Evolução) APIs === HTTP + PHP + Mezzio
  22. Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 9/6/20 - 22 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 30 anos de Mercado Está na base da web Vitalidade (Ritmo de Evolução) HTTP/2 (2015) HTTP/3 (202...0?) APIs === HTTP + PHP + Mezzio
  23. Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 9/6/20 - 23 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 30 anos de Mercado Está na base da web Vitalidade (Ritmo de Evolução) HTTP/2 (2015) HTTP/3 (202...0?) Dinamismo (Qualidade de Evolução) APIs === HTTP + PHP + Mezzio
  24. Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 9/6/20 - 24 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 30 anos de Mercado Está na base da web Vitalidade (Ritmo de Evolução) HTTP/2 (2015) HTTP/3 (202...0?) Dinamismo (Qualidade de Evolução) plain/text → binário Multiplexing de requisições e respostas … e mais1 [1] https://developers.google.com/web/fundamentals/performance/http2 APIs === HTTP + PHP + Mezzio
  25. Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 9/6/20 - 25 / 62 www.galvao.eti.br Simplicidade APIs === HTTP + PHP + Mezzio
  26. Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 9/6/20 - 26 / 62 www.galvao.eti.br Simplicidade Conceito, uso, testes e desenvolvimento Status Codes APIs === HTTP + PHP + Mezzio
  27. Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 9/6/20 - 27 / 62 www.galvao.eti.br Simplicidade Conceito, uso, testes e desenvolvimento Status Codes Versatilidade APIs === HTTP + PHP + Mezzio
  28. Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 9/6/20 - 28 / 62 www.galvao.eti.br Simplicidade Conceito, uso, testes e desenvolvimento Status Codes Versatilidade Conceitual e prática APIs === HTTP + PHP + Mezzio
  29. Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 9/6/20 - 29 / 62 www.galvao.eti.br Simplicidade Conceito, uso, testes e desenvolvimento Status Codes Versatilidade Conceitual e prática Proliferação APIs === HTTP + PHP + Mezzio
  30. Protocolo: Por que HTTP? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 9/6/20 - 30 / 62 www.galvao.eti.br Simplicidade Conceito, uso, testes e desenvolvimento Status Codes Versatilidade Conceitual e prática Proliferação em dispositivos, softwares e linguagens APIs === HTTP + PHP + Mezzio
  31. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    9/6/20 - 31 / 62 www.galvao.eti.br LINGUAGEM: Por que PHP? APIs === HTTP + PHP + Mezzio
  32. Linguagem: Por que PHP? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 9/6/20 - 32 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] APIs === HTTP + PHP + Mezzio
  33. Linguagem: Por que PHP? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 9/6/20 - 33 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 25 anos de Mercado Está – também – na base da web APIs === HTTP + PHP + Mezzio
  34. Linguagem: Por que PHP? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 9/6/20 - 34 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 25 anos de Mercado Está – também – na base da web Vitalidade (Ritmo de Evolução) APIs === HTTP + PHP + Mezzio
  35. Linguagem: Por que PHP? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 9/6/20 - 35 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 25 anos de Mercado Está – também – na base da web Vitalidade (Ritmo de Evolução) PHP7 (2018) PHP8 (20201) APIs === HTTP + PHP + Mezzio [1] https://www.galvao.eti.br/top-5-php-8-features/
  36. Linguagem: Por que PHP? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 9/6/20 - 36 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 25 anos de Mercado Está – também – na base da web Vitalidade (Ritmo de Evolução) PHP7 (2018) PHP8 (20201) Dinamismo (Qualidade de Evolução) APIs === HTTP + PHP + Mezzio [1] https://www.galvao.eti.br/top-5-php-8-features/
  37. Linguagem: Por que PHP? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 9/6/20 - 37 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 25 anos de Mercado Está – também – na base da web Vitalidade (Ritmo de Evolução) PHP7 (2018) PHP8 (20201) Dinamismo (Qualidade de Evolução) Tipagem, Modelo de Exceções, OO, Segurança, Performance, etc... APIs === HTTP + PHP + Mezzio [1] https://www.galvao.eti.br/top-5-php-8-features/
  38. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    9/6/20 - 38 / 62 www.galvao.eti.br Simplicidade APIs === HTTP + PHP + Mezzio Linguagem: Por que PHP?
  39. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    9/6/20 - 39 / 62 www.galvao.eti.br Simplicidade Baixa curva de aprendizado Modelo Interpretado APIs === HTTP + PHP + Mezzio Linguagem: Por que PHP?
  40. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    9/6/20 - 40 / 62 www.galvao.eti.br Simplicidade Baixa curva de aprendizado Modelo Interpretado Versatilidade APIs === HTTP + PHP + Mezzio Linguagem: Por que PHP?
  41. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    9/6/20 - 41 / 62 www.galvao.eti.br Simplicidade Baixa curva de aprendizado Modelo Interpretado Versatilidade Ambientes/Arquiteturas APIs === HTTP + PHP + Mezzio Linguagem: Por que PHP?
  42. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    9/6/20 - 42 / 62 www.galvao.eti.br Simplicidade Baixa curva de aprendizado Modelo Interpretado Versatilidade Ambientes/Arquiteturas Proliferação APIs === HTTP + PHP + Mezzio Linguagem: Por que PHP?
  43. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    9/6/20 - 43 / 62 www.galvao.eti.br Simplicidade Baixa curva de aprendizado Modelo Interpretado Versatilidade Ambientes/Arquiteturas Proliferação Ecossistema Comunidades Mercado APIs === HTTP + PHP + Mezzio Linguagem: Por que PHP?
  44. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    9/6/20 - 44 / 62 www.galvao.eti.br FRAMEWORK: Por que Laminas Mezzio? APIs === HTTP + PHP + Mezzio
  45. Framework: Por que Laminas Mezzio? CC Attribution-ShareAlike 3.0 Unported License

    by Er Galvão Abbott - 9/6/20 - 45 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] APIs === HTTP + PHP + Mezzio
  46. Framework: Por que Laminas Mezzio? CC Attribution-ShareAlike 3.0 Unported License

    by Er Galvão Abbott - 9/6/20 - 46 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 12 anos de Mercado Foco em abstração, generalização, OOP APIs === HTTP + PHP + Mezzio
  47. Framework: Por que Laminas Mezzio? CC Attribution-ShareAlike 3.0 Unported License

    by Er Galvão Abbott - 9/6/20 - 47 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 12 anos de Mercado Foco em abstração, generalização, OOP Vitalidade (Ritmo de Evolução) APIs === HTTP + PHP + Mezzio
  48. Framework: Por que Laminas Mezzio? CC Attribution-ShareAlike 3.0 Unported License

    by Er Galvão Abbott - 9/6/20 - 48 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 12 anos de Mercado Foco em abstração, generalização, OOP Vitalidade (Ritmo de Evolução) ZF1 (≃ 2008) → … → ZF2 (2012) ZF2 (2012) → ... → ZF3 (2016) ZF3 (2016) → ... → Laminas (2019) APIs === HTTP + PHP + Mezzio
  49. Framework: Por que Laminas Mezzio? CC Attribution-ShareAlike 3.0 Unported License

    by Er Galvão Abbott - 9/6/20 - 49 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 12 anos de Mercado Foco em abstração, generalização, OOP Vitalidade (Ritmo de Evolução) ZF1 (≃ 2008) → … → ZF2 (2012) ZF2 (2012) → ... → ZF3 (2016) ZF3 (2016) → ... → Laminas (2019) Dinamismo (Qualidade de Evolução) APIs === HTTP + PHP + Mezzio
  50. Framework: Por que Laminas Mezzio? CC Attribution-ShareAlike 3.0 Unported License

    by Er Galvão Abbott - 9/6/20 - 50 / 62 www.galvao.eti.br Confiabilidade [+ Adoção [+ …]] > 12 anos de Mercado Foco em abstração, generalização, OOP Vitalidade (Ritmo de Evolução) ZF1 (≃ 2008) → … → ZF2 (2012) ZF2 (2012) → ... → ZF3 (2016) ZF3 (2016) → ... → Laminas (2019) Dinamismo (Qualidade de Evolução) Modularidade, Injeção de Dependências, Estrutura de Projeto, Integração com outros componentes APIs === HTTP + PHP + Mezzio
  51. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    9/6/20 - 51 / 62 www.galvao.eti.br Capital cultural/intelectual imenso APIs === HTTP + PHP + Mezzio Framework: Por que Laminas Mezzio?
  52. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    9/6/20 - 52 / 62 www.galvao.eti.br Capital cultural/intelectual imenso Grandes “cabeças” do mercado Intimidade com a linguagem Padrões/PSRs/etc... APIs === HTTP + PHP + Mezzio Framework: Por que Laminas Mezzio?
  53. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    9/6/20 - 53 / 62 www.galvao.eti.br Capital cultural/intelectual imenso Grandes “cabeças” do mercado Intimidade com a linguagem Padrões/PSRs/etc... Foco correto APIs === HTTP + PHP + Mezzio Framework: Por que Laminas Mezzio?
  54. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    9/6/20 - 54 / 62 www.galvao.eti.br Capital cultural/intelectual imenso Grandes “cabeças” do mercado Intimidade com a linguagem Padrões/PSRs/etc... Foco correto O foco é a qualidade do código e não o “usuário”(sic) APIs === HTTP + PHP + Mezzio Framework: Por que Laminas Mezzio?
  55. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    9/6/20 - 55 / 62 www.galvao.eti.br Capital cultural/intelectual imenso Grandes “cabeças” do mercado Intimidade com a linguagem Padrões/PSRs/etc... Foco correto O foco é a qualidade do código e não o “usuário”(sic) Interoperabilidade APIs === HTTP + PHP + Mezzio Framework: Por que Laminas Mezzio?
  56. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    9/6/20 - 56 / 62 www.galvao.eti.br Capital cultural/intelectual imenso Grandes “cabeças” do mercado Intimidade com a linguagem Padrões/PSRs/etc... Foco correto O foco é a qualidade do código e não o “usuário”(sic) Interoperabilidade Use o que quiser, como quiser APIs === HTTP + PHP + Mezzio Framework: Por que Laminas Mezzio?
  57. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    9/6/20 - 57 / 62 www.galvao.eti.br Conclusão: EVOLUÇÃO APIs === HTTP + PHP + Mezzio
  58. Web: Evolução constante CC Attribution-ShareAlike 3.0 Unported License by Er

    Galvão Abbott - 9/6/20 - 58 / 62 www.galvao.eti.br APIs === HTTP + PHP + Mezzio HTTP → HTTPS → HTTP/2 → HTTP/3
  59. Web: Evolução constante CC Attribution-ShareAlike 3.0 Unported License by Er

    Galvão Abbott - 9/6/20 - 59 / 62 www.galvao.eti.br APIs === HTTP + PHP + Mezzio HTTP → HTTPS → HTTP/2 → HTTP/3 SSI → Perl → PHP4 → PHP5 → PHP7 → PHP8
  60. Web: Evolução constante CC Attribution-ShareAlike 3.0 Unported License by Er

    Galvão Abbott - 9/6/20 - 60 / 62 www.galvao.eti.br APIs === HTTP + PHP + Mezzio HTTP → HTTPS → HTTP/2 → HTTP/3 SSI → Perl → PHP4 → PHP5 → PHP7 → PHP8 ZF1 → ZF2 → ZF3 → Laminas
  61. Web: Evolução constante CC Attribution-ShareAlike 3.0 Unported License by Er

    Galvão Abbott - 9/6/20 - 61 / 62 www.galvao.eti.br APIs === HTTP + PHP + Mezzio HTTP → HTTPS → HTTP/2 → HTTP/3 SSI → Perl → PHP4 → PHP5 → PHP7 → PHP8 ZF1 → ZF2 → ZF3 → Laminas Texto → CSV → XML → JSON JSONSchema OpenAPI
  62. Muito obrigado! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão

    Abbott - 9/6/20 - 62 / 62 www.galvao.eti.br Dúvidas? Críticas? Elogios?! ? APIs === HTTP + PHP + Mezzio