IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

créer une api rest en php


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Juin 2015
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2015
    Messages : 50
    Points : 61
    Points
    61
    Par défaut créer une api rest en php
    Bonjour tout le monde

    J'ai créé ma petite api rest en php et quand j'affiche les données sur un navigateur ça donne un truc dégueulasse comme ça
    Nom : apiRestPerso.png
Affichages : 1845
Taille : 93,5 Ko
    car si je compare l'affichage de l'api rest de wordpress
    Nom : apiRestWordpress.png
Affichages : 1791
Taille : 145,1 Ko

    il y a une grosse différence
    et ce n'est pas seulement esthétique: ça joue un rôle car quand je récupère les données en ajax avec jQuery, ça fonctionne pour l'api rest de wordpress et pas pour la mienne
    par contre ça fonctionne avec $ressource de AngularJS aussi bien pour mon api rest que celle de wordpress

    pour mon api rest je récupère les données dans un tableau $data et je fais echo json_encode($data);

    et encore un paramètre: l'affichage des données json de firefox fonctionne pour l'api rest de wordpress et non pour la mienne

    donc quelqu'un connaît des pistes pour avoir une api rest qui fonctionnerait de manière universelle ?

    et je précise que je travaille en local pour le moment

    Merci

    A+

  2. #2
    Membre confirmé
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Points : 451
    Points
    451
    Par défaut
    Bonjour,
    Ton problème / ta question c'est quoi exactement ?

    Sinon, le problème que tu soulèves, c'est les chaînes de caractère multilignes en javascript (je suppose que c'est ce que tu trouves de 'dégeulasse' dans ta json string aussi).
    Une chaine multiligne, javascript ne peut pas la traiter. Dans AngularJS, il doit y avoir un traitement particulier là-dessus, genre String.raw mais pas dans jquery.

    Ce que je fais pour éviter ce problème, c'est de rationnaliser la chaîne en amont, par php (pour avoir un résultat du type wordpress que tu signales).

    Pour ça, il faut échapper les sauts de ligne (\n et \r) mais aussi, tant que tu y es, les tabulations (\t) (de la même façon, des fois, qu'on échappe un " par un \" pour éviter que le " pose problème).
    Il te faut un truc du style :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $json = json_encode($tableau);
    $search  = array('\n', '\r', '\r\n', '\t');
    $replace = array('\\n', '\\r', '\\r\\n', '\\t');
    $json = str_replace($search, $replace, $json);

    Cela devrait régler ton soucis avec JQuery.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Juin 2015
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2015
    Messages : 50
    Points : 61
    Points
    61
    Par défaut
    Hello

    merci beaucoup pour la réponse
    Tu avais bien compris ma demande

    J'ai essayé en échappant les espaces et tout ça mais ça ne fonctionne toujours pas

    en réalité, j'aimerais récupéré des posts avec jquery et les afficher avec VueJS. Avec l'api rest de wordpress ça fonctionne très bien et là avec ma propre api, ça n'affiche rien et pourtant ça affiche les posts dans la console
    Nom : json_console.png
Affichages : 1709
Taille : 27,0 Ko

    C'est sûrement un problème d'affichage avec VueJS mais pourquoi exactement le même script fonctionne avec l'api de wordpress ?

  4. #4
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    La différence d'affichage est sûrement due au fait que tu ne renvoies pas la bonne en-tête qui doit être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Content-type: application/json');
    . Ajoute ça en haut de ton script de l'API...
    Maintenant côté AJAX est-ce que tu utilises le dataType:'json' ou la méthode $.getJSON() ?

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Juin 2015
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2015
    Messages : 50
    Points : 61
    Points
    61
    Par défaut
    Merci beaucoup Willy_k tu as fait ma journée
    trop la classe
    C'était bien ça il manquait l'entête pour signaler au navigateur que c'est du json et mon script avec vueJS fonctionne maintenant super bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer une API sur la base du PHP (Zend Framework)
    Par Jonathan.b dans le forum Langage
    Réponses: 3
    Dernier message: 07/01/2009, 11h15
  2. Créer une API
    Par iwf-fr dans le forum Langage
    Réponses: 1
    Dernier message: 15/11/2007, 20h47
  3. [Java] Utiliser une API Java en PHP
    Par Antoun dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 22/10/2007, 12h19
  4. crééer une api java ?
    Par Kcrik dans le forum Langage
    Réponses: 1
    Dernier message: 28/04/2006, 17h35
  5. Comment exécuter une API windows via php ?
    Par mikemead dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 31/03/2006, 10h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo