SymfonyBrasil / Forum

Forum para movimentação de discussões da comunidade
8 stars 0 forks source link

[RESOLVIDO] Qual a melhor forma de criar versões uma API ? #2

Closed alefcastelo closed 7 years ago

alefcastelo commented 7 years ago

Como vocês estão arquitetando suas aplicações para versionar uma API?

joubertredrat commented 7 years ago

@alefcastelo no meu projeto eu irei usar a função de versionamento do FOSRestBundle

https://symfony.com/doc/master/bundles/FOSRestBundle/versioning.html

alefcastelo commented 7 years ago

@joubertredrat não conhecia essa opção, muito boa, pra versionar o output da entity eu uso o JMSSerializer, você tem alguma sugestão para os services?

vinyvicente commented 7 years ago

@alefcastelo boa questão. Já vi em alguns casos, principalmente quando vier o Symfony Flex, a possibilidade de usar a versão para separar os Bundles. É claro que tem que ser muito bem pensado e é fácil cair na vulnerabilidade de sair do microserviço.

Uma estratégia seria colocar os serviços em Namespaces Apiv1/Service/Product e Apiv2/Service/Product, ou alguma abordagem desse tipo.

alefcastelo commented 7 years ago

@vinyvicente separar por namespace acho que seria muito complicado manter, pois algumas vezes pequenas mudanças que teriam a necessidade de mudar de versão na minha visão poderia ser uma dor de cabeça manter assim! Porém a abordagem do Symfony Flex que é "parecido" com isso, parece ser interessante pra que uma aplicação monolitica cresça para um microserviço mais facil.

joubertredrat commented 7 years ago

@alefcastelo eu vejo versionamento de rotas API (v1, v2) e versionamento de serviços e todo o resto como coisas distintas. Eu posso vir a ter separação no namespace igual nas rotas, mas não vejo justificativa para tal.

vinyvicente commented 7 years ago

@alefcastelo, como falei, sim, existe risco, mas vai virar realidade, é um bom ponto de partida pra um projeto do zero.

alefcastelo commented 7 years ago

show, vlw @joubertredrat @vinyvicente acho que daqui já conseguir extrair algumas respostas!

vinyvicente commented 7 years ago

Achei essa referência que vai ajudar bastante (inclusive com serviços): https://blog.bam.tech/developper-news/make-a-versioned-api-with-symfony

alefcastelo commented 7 years ago

@vinyvicente Excelente link!