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 ?
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 ?
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 :
Donc, pour le rendre REST, vous devez.. :
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.
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/
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).
Ç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.
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 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.