API - Architecture et bonnes pratiques

a marqué ce sujet comme résolu.

Bonjour à tous,

Soit j'ai mal cherché, soit la réponse que je cherche n'existe pas …

Je suis en train de développer une application en php grâce à Symfony.

Mon application à une API réalisée grâce à FOSRestBundle (Sécurisée avec FOSAuthBundle + FOSUserBundle) et Documentée avec NelmioApiDocBundle

Mais dans cette application , je dois aussi avoir un site 'traditionnel'.

Ma question est de savoir. Dans mon (mes) Contrôleur(s) Dois-je faire apel à l'API ou travailler de manière plus traditionnelle ?

Salut,

Je dirais avec une approche de novice en la matière que tu peux envisager les deux cas de figure :

  • Ou tu fais un site traditionnel qui requête cette API à coup d'appels Ajax pour ensuite parser le résultat de la requête (en XML/JSON/…)
  • Ou tu fais effectivement un backend qui requête l'API et qui fait d'autres traitements customs de ton choix… Mais ça fait deux requêtes au lieu d'une seule (en gros).

Selon moi, ton backend symfony "traditionnel" et ton API devraient avoir un coeur de code "commun" pour que les deux ne s'empiètent pas dessus et restent indépendant. Ainsi ton API servirait à développer des applications tiers autour de ton service…

Salut,

Pour compléter un peu la réponse de Ge0, tu peux garder ton API intacte et faire un site full Javascript (avec Angular, React ou autres) qui exploite ton API. Dans ce cas, tu vas utiliser ton API comme si tu étais toi-même un client.

Tu peux aussi utiliser le système de négociation de contenu de FOSRestBundle et configurer tes contrôleurs pour qu'ils génèrent aussi bien des réponses API que des pages HTML. Pour configurer les vues de FOSRestBundle, la documentation du ViewHandler est un bon début. Et pour la négociation de contenu, tu peux commencer par la documentation du FormatListener.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte