Besoin d'aide ?

Laravel + vue js Access to XMLHttpRequest at 'https://fr.openfoodfacts.org/api/v0/produit/1.json' from origin 'http://localhost'

Avatar de MourareauMathieu
MourareauMathieu

Salut à tous et salut à toi Momo :)

Je suis passé sur ton site et tu as fait un tuto nuxt et vue js sur l'api openfoodfacts, je dois m'en servir mais impossible actuellement, j'ai Access to XMLHttpRequest at 'https://fr.openfoodfacts.org/api/v0/produit/1.json' from origin 'http://localhost' has been blocked by cors policy

voici le code :

submit () {

      if(this.code != 0 && !isNaN(this.code)) {
          // axios
          //     .get(`/food/${this.code}`)
          axios.get(`https://fr.openfoodfacts.org/api/v0/produit/${this.code}.json` , {

              headers: {
                  'Access-Control-Allow-Origin' : '*',
                  'Access-Control-Allow-Methods' : 'GET,PUT,POST,DELETE,PATCH,OPTIONS',
              },
          })
              .then(r => {
                  console.log(r.data);
              })
              .catch(e => {
                  console.log(e)
              })
      }
    }

une idée ? :) merci d'avance

Posté il y a 4 mois
Avatar de Dom
Dom

Je pense que ce site bloc les demandes venant d'un url local ou inconnu de leur système.

Posté il y a 4 mois
Avatar de MourareauMathieu
MourareauMathieu

c'est ce que je me suis dit mais pourant sur l'exemple il utilise localhost:3000 https://laravel.sillo.org/comprendre-vue-js-nuxt-en-action/

Posté il y a 4 mois
Avatar de bestmomo
bestmomo

Salut,

Il ont peut-être changé leur politique, je viens de lire ça dans leur documentation :

Vous avez parfaitement le droit d'utiliser l'API pour des programmes en production, tant qu'1 appel API = 1 scan par un utilisateur réel. Toute tentative de "scraper" la base de données en utilisant l'API sera très probablement bloquée, car des exports journaliers complets sont disponibles sur cette page.

Posté il y a 4 mois
Avatar de MourareauMathieu
MourareauMathieu

merci pour ta reponse! depuis le backend en utilisant ce package jy arrive https://github.com/palmans/laravel-openfoodfacts

ca revient au meme non ?

Posté il y a 4 mois
Avatar de bestmomo
bestmomo

S'il y a un package c'est parfait :)

Posté il y a 4 mois
Avatar de MourareauMathieu
MourareauMathieu

Yes je vais passer par la. j'aurai besoin des deux trois conseils si ça te dérange pas concerant mon projet. je dois consevoir une appli fitness, nutrition.

Une personne peut choisir des aliments, faire des recettes à partir des aliments. au niveau de ma base de données afin de pouvoir sauvegarder les recettes et aliments de l'utilisateur je pensai persister en base de données uniquement le code barre du produit (aliment) qu'en pense tu ?

Posté il y a 4 mois
Avatar de bestmomo
bestmomo

Salut,

Il est possible que les données concernant l'aliment évoluent entre temps ou même que le produit disparaisse (plus rare), je ne sais pas si c'est gênant pour tes traitements. As-tu aussi envisagé la possibilité d'héberger toi même la base (1,5 GO) que tu récupères chez openfoodfacts et que tu actualises régulièrement (par exemple une tâche CRON tous les 24h) ? Ca t'éviterait d'utiliser l'API et ça règlerait ta question. Une piste...

Posté il y a 4 mois
Avatar de MourareauMathieu
MourareauMathieu

Tu pense que le code barre du produit peut être modifié ? effectivement je pourrais avoir une base openfoodfacts et une base pour mon application ! une bonne piste !!!! envisagable d'importer ça sur une base mysql ? ça pourrais affecter mes traitements oui :/

merci Maurice :)

Posté il y a 4 mois
Avatar de bestmomo
bestmomo

Pourquoi la transformer en MySQL ? Laravel peut très bien gérer du mongodb avec Eloquent, tu as par exemple ce package. Et une base en mongo c'est juste des fichiers genre JSON.

Posté il y a 4 mois
Avatar de MourareauMathieu
MourareauMathieu

Tu as raison je vais partir la dessus c'est top merci beaucoup :)

Posté il y a 4 mois
Avatar de MourareauMathieu
MourareauMathieu

Salut j'ai une petite question finalement l'application doit permettre de pouvoir ajouter des aliments si j'utilise le dump ca va poser souci je pense ! les aliments rajoutes vont etre écrassés a chaque import

Posté il y a 4 mois
Avatar de MourareauMathieu
MourareauMathieu

Peut-être que je devrais utiliser open Food juste pour la recherche une fois que l'utilisateur à sélectionner un produit pour le rajouter dans son compte j'insère les données du produit dans ma base de données à moi et si l'utilisateur veut créer un produit qu'il ne trouve pas sur Opponent Foodne trouve pas sur Open food alors Je le crée de toute pièce je demande toutes les infos à l'utilisateur et je l'ai rajouté dans ma table qu'est-ce que tu en penses ?

Posté il y a 4 mois
Avatar de bestmomo
bestmomo

Ca peut être une solution judicieuse. Et si les données sur le poduit évoluent sur Open Food elles resteront inchangées dans ta base, sauf à éventuellement synchroniser de façon cyclique.

Posté il y a 4 mois
Avatar de MourareauMathieu
MourareauMathieu

exactement :) je pars la dessus

Posté il y a 4 mois

Vous ne pouvez pas répondre à ce sujet.