2017-09-22 4 views
0

Je crée une application web orientée film/série. Dans cette application, les utilisateurs seraient en mesure de rechercher à travers des films/séries et de les abonner. Je souhaite fournir aux utilisateurs le moteur de recherche de films/séries via l'API. Dans la base de données de mon application, je n'ai aucune information sur les films/séries, donc quand les utilisateurs tapent le titre dans le champ de recherche, je dois envoyer une requête de recherche à l'API pour aller chercher les films/séries correspondant au modèle donné. Le problème est qu'à ce stade, je ne vois aucun moyen d'implémenter cette fonctionnalité. J'ai pensé à un autre contrôleur e.i. Chercheur. C'est bien, mais je voudrais mettre ce champ de recherche dans la mise en page de mon application afin qu'il soit disponible partout non seulement pour les utilisateurs qui sont sur une URL particulière.Rails fournissant la recherche par API avec themoviedb-api gem

Répondre

1

D'abord avez-vous une clé API de l'API IMDB? (https://github.com/18Months/themoviedb-api)

Faites-en une forme à distance et interceptez les résultats via le rappel Ajax ajax:complete. Lorsqu'une requête est effectuée, affichez un chargeur sur la vue pour attendre le moment où vous appelez l'API.

Appelez votre SearchController à travers son itinéraire.

Dans votre contrôleur Recherchez dans votre base de données, si vous ne le trouvez pas, effectuez un appel d'API, enregistrez dans la base de données et diffusez le résultat.

(Ce serait mieux d'appeler l'API en arrière-plan, et servir des résultats par Websockets mais serait trop technique en ce moment.)

+0

donc je dois faire une forme et quand il est soumis, les données de recherche va à mon contrôleur de recherche, puis la recherche est responsable de la collecte de données que ce soit à partir de ma base de données ou à travers movieAPI. Pour que la recherche fasse partie de ma mise en page principale, je dois enregistrer tous les résultats de mes recherches sur ma base de données, ai-je raison? – Mark

+0

Il est plus important d'éviter d'atteindre les limites de quotas de l'API. Et faire en sorte que le formulaire fasse partie de votre mise en page ne nécessite rien d'autre que de le coller dans la mise en page. ça marche partout ... – gdurelle

+0

Ouais je l'ai eu. Je n'ai pas besoin de sauvegarder mes résultats de recherche et je ne peux pas atteindre les limites de quotas. Je pense que le moyen raisonnable serait de mettre en place un mécanisme de limitation des quotas sur ma page (pas du côté de l'API). Revenons à votre réponse. Qu'avez-vous voulu dire en appelant l'API en arrière-plan? Dans le cadre de l'extension du navigateur? – Mark