Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sites institucionais com APIs #202

Open
marcelcunha opened this issue Feb 25, 2020 · 3 comments
Open

Sites institucionais com APIs #202

marcelcunha opened this issue Feb 25, 2020 · 3 comments

Comments

@marcelcunha
Copy link

Olá pessoal, não sei se aqui seria o melhor lugar para esse tipo de dúvida, se for o caso me avisem que excluo a issue.

Trabalho numa pequena empresa focado no desenvolvimento de sistemas para atender demandas de clientes. As vezes (muitas vezes), ajudo no desenvolvimento de sites pois esses são ligados a um CMS da empresa. Criei um projeto Lumen (antes eram umas tripas de código de 2000 linhas misturando SQL, PHP, JS, CSS, HTML e sabe-se lá mais o que), que integra o banco desse CMS e funciona bonitinho, é usado como base para uns 4 sites atualmente.

Embora funcione, particularmente essa maneira de trabalhar não está me agradando. Acho que manter um site numa estrutura HTML, CSS e JS é mais interessante. Com esse projeto Lumen, consigo mudar essas estrutura para uma API em pouco tempo sem esforço, mas não sei qual a melhor maneira de consumi-la no front.

Gostaria de pedir a opinião de vocês mais experientes nesse assunto: vale a pena trabalhar com sites institucionais consumindo API? SPA seria válida nesse caso? Qual abordagem recomendam? Alguma dica de leitura?

Reitero que se aqui não for um bom lugar para esse tipo de questionamento, me avisem e já peço desculpas.

Muito obrigado.

@Queopius
Copy link

Não entendo sua pergunta, poderia ser mais especifico?

@fabiosperotto
Copy link

Olá @marcelcunha

Tenho pouca experiência com frontend, sou backend e trabalhei em duas empresas da área, no máximo uns 4 anos, então não considere que trarei, talvez, a melhor solução de todas, hehe, mas gostei da issue.

Como mencionou, está usando o Lumen, o que me chama atenção para o possível desenvolvimento de API-first [1] na sua empresa (o que fornece melhor desacoplação nas soluções da minha que ficam engessadas no framework). O benefício disto, creio eu, é que você tendo a API de dados (REST, por exemplo), você pode ter quaisquer CMS e quaisquer frontends consumindo estes dados. A ideia disso é primeiro pensar nos dados, organizar, fornecer rotas ao mesmo, que podem serem feitos dentro do Laravel com os seus resources Controllers [2]. Poderá manter essa catalogação com o Lumen e desenvolver um CMS que se conecte as rotas destes e um frontend com Vue.js [3], React ou js puro mesmo [4], consumindo os dados. Sim, SPA seria válido no caso dos institucionais.

O que acha destes exemplos e trajetórias? Além do fator técnico, da qual pode ler melhor sobre códigos nas referências, tens que ver com a qualidade de codificação da equipe, o que cham e tal. Se conseguem manter e contratar futuros devs com as arquiteturas vigentes, então tudo bem. Onde trabalhei, não entregávamos API-first porque a equipe se dava bem com CMS-Laravel no backend e HTML, CSS, JS no front, no máximo um Vue ou React. Poucas demandas de algumas rotas de API eram fornecidas pelo CMS-Laravel. API Rest só quando um projeto em específico requisitava (empresa cliente demandava API e não um CMS para o manipular o banco de dados) e, neste caso, ia de Lumen.

Quando um coordenador técnico saiu da empresa, eu sentia falta destas discussões e decisões, hehe. Enfim, não sei se ajudei ou atrapalhei na reflexão, mais respostas seriam legais, permanentemente estudando o assunto.

Referências:
1 - https://www.contentful.com/blog/2018/05/02/how-i-fell-in-love-with-an-api-first-cms/
2 - https://vuejsdevelopers.com/2018/02/05/vue-laravel-crud/
3 - https://www.liquidlight.co.uk/blog/using-vue-js-with-a-lumen-powered-api/
4 - https://danlevy.net/you-may-not-need-axios/

@josemoraes
Copy link

@marcelcunha , essa abordagem que você está apresentando é o que o Strapi já faz. Sobre frontend, cuidado em usar frameworks de SPA, pois se o produto que você vier a construir necessitar de SEO otimizado, aí você vai precisar de uma estratégia de Server-Side Rendering. Sempre considere seu cenário pra entender o que vale a pena. Veja alternativas como GatsbyJS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants