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
    Membre depuis :
    20/01/2017
    Messages :
    98

    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

  • Avatar de Dom
    Membre depuis :
    17/07/2017
    Messages :
    40

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

  • Avatar de MourareauMathieu
    Membre depuis :
    20/01/2017
    Messages :
    98

    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/

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2632

    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.

  • Avatar de MourareauMathieu
    Membre depuis :
    20/01/2017
    Messages :
    98

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

    ca revient au meme non ?

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2632

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

  • Avatar de MourareauMathieu
    Membre depuis :
    20/01/2017
    Messages :
    98

    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 ?

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2632

    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...

  • Avatar de MourareauMathieu
    Membre depuis :
    20/01/2017
    Messages :
    98

    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 :)

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2632

    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.

  • Avatar de MourareauMathieu
    Membre depuis :
    20/01/2017
    Messages :
    98

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

  • Avatar de MourareauMathieu
    Membre depuis :
    20/01/2017
    Messages :
    98

    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

  • Avatar de MourareauMathieu
    Membre depuis :
    20/01/2017
    Messages :
    98

    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 ?

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2632

    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.

  • Avatar de MourareauMathieu
    Membre depuis :
    20/01/2017
    Messages :
    98

    exactement :) je pars la dessus

Vous ne pouvez pas répondre à ce sujet.