45 votes

Comment écrire Rest en PHP

Je développe une bibliothèque php. Je veux donc ajouter Rest à ma bibliothèque.

Comment écrire Rest en PHP ? Une idée ?

Merci pour tous vos conseils ?

39voto

elviejo Points 2758

Puisque REST est l'application des mêmes méthodes du protocole HTTP à la conception d'architectures client-serveur et que PHP est déjà si bon pour gérer les requêtes du protocole HTTP telles que GET et POST. PHP est spécialement adapté pour faciliter le développement de services REST.

Rappelez-vous que REST est l'application des mêmes modèles http qui existent déjà.

Donc si vous avez actuellement une application qui fait quelque chose comme :

  1. Formulaire HTML
  2. Processus PHP
  3. Sortie HTML dans un tableau

Donc, pour le rendre REST, vous devez.. :

  1. Accepter les paramètres du web. C'est facile puisque vous recevrez les paramètres soit en tant que get ou post... donc c'est fondamentalement la même chose.
  2. Processus PHP
  3. Sortie en soit JSON o XML . Et c'est tout !

    C'est assez facile.

La partie la plus difficile consiste maintenant à rendre votre API (les fonctions et les URL) que vous allez générer conviviale pour les programmeurs.

Dans ce cas, je vous suggère de regarder le API flickr par exemple, est très convivial pour les développeurs, facile à deviner et possède une bonne documentation.

Pour plus d'informations sur les API, consultez cette présentation : Comment concevoir une bonne API et pourquoi c'est important (Joshua Bloch)

Enfin, une API RESTful doit également mettre en œuvre les méthodes PUT et DELETE du protocole http. quand cela a du sens

Par exemple, si vous avez une action de suppression dans votre API, ledit service doit recevoir la méthode de suppression du protocole http. Au lieu de la chose plus commune d'envoyer un paramètre d'action comme partie d'une requête post.

Editar: Remplacé "Php is rest by default" par "Puisque REST est l'application des mêmes méthodes du protocole HTTP à la conception d'architectures client-serveur et que PHP est déjà si bon pour gérer les requêtes du protocole HTTP telles que GET et POST. PHP est spécialement adapté pour faciliter le développement de services REST."

Nous avons également ajouté une note finale indiquant que vous devez mettre en œuvre les méthodes PUT ou DELETE appropriées lorsque cette action est pertinente pour votre API.

18voto

James Black Points 26183

Vous pouvez consulter cet article et son suivi : http://www.gen-x-design.com/archives/create-a-rest-api-with-php/

Votre question étant très ouverte, ce tutoriel est peut-être le meilleur point de départ.

Le lien ci-dessus ne fonctionnant plus, consultez ce tutoriel :

http://net.tutsplus.com/tutorials/other/a-beginners-introduction-to-http-and-rest/

5voto

Jake Sankey Points 1172

J'ai développé une classe qui est l'équivalent REST de la classe SoapServer native de PHP.

Il suffit d'inclure le fichier RestServer.php et de l'utiliser comme suit.

class Hello
{
  public static function sayHello($name)
  {
    return "Hello, " . $name;
  }
}

$rest = new RestServer(Hello);
$rest->handle();

Ensuite, vous pouvez passer des appels comme celui-ci :

http://myserver.com/path/to/api?method=sayHello&name=World

(Notez que l'ordre dans lequel les paramètres sont fournis dans la chaîne de requête n'a pas d'importance. De plus, les noms des clés des paramètres ainsi que le nom de la méthode sont insensibles à la casse).

Achetez-le ici .

4voto

Sixten Otto Points 10267

Ça ne peut pas faire de mal de retourner à la source originale du terme REST et assurez-vous de bien comprendre ce que cela signifie.

4voto

Si vous pensez au côté client, je vous suggère de consulter l'ouvrage PEST de Matt Sukowski.

Vous trouverez le dépôt sur GitHub : https://github.com/educoder/pest

Consultez également ce fil de discussion : Clients REST PHP

Mise à jour 2013/12/13 :
Il s'agit d'un projet open source très vivant, Matt Sukowsky l'a remis à de nouveaux gardiens cet été parce qu'il ne pensait pas pouvoir y consacrer assez de temps, et il y a eu beaucoup, beaucoup de contributions depuis lors. Pest est donc meilleur que jamais pour faire du Rest en PHP :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X