2011-07-11 4 views
1

Possible en double:
Beginner to PHP web servicesPHP Web Services

Je voudrais exposer une API pour mes clients afin qu'ils puissent tirer certains types de données de mon dos datastore, mais Je n'ai jamais fait ça en PHP. J'ai mis en place plusieurs services web dans Apache CXF (du côté Java de l'univers) mais j'ai absolument besoin d'un service web basé sur PHP.

Un premier Google a rapporté un nombre impressionnant de prospects, et j'ai donc pensé qu'il serait probablement bon de demander ici d'abord quelles sont les API, les bibliothèques open source, etc. que la communauté SO recommanderait. De plus, toutes les suggestions qui sont des «pratiques exemplaires» seraient grandement appréciées.

Merci!

Répondre

1

Vous pouvez utiliser l'objet/tableau codé JSON:

header('Cache-Control: no-cache, must-revalidate'); 
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); 
header('Content-type: application/json'); 

echo json_encode($data); 

Mais avant que vous devez analyser la demande et faire des vérifications sur la variable, leur échapper peut-être pour éviter toute entrée de données malveillantes ou demande. Je suppose que vous aurez besoin d'API simple qui fournira l'accès à la base de données. Vous pouvez créer votre propre classe, quelque chose comme la classe ProductsService {}

après cela en fonction de la demande éléments dans le GET retourner des données différentes.

domain.tld/api?action=getProducts&count=10&title=product title 

d'analyser la requête et de renvoyer le format XML ou JSON à votre client. Si vous souhaitez protéger les données et autoriser uniquement votre client à y accéder, utilisez la clé de hachage prédéfinie et la vérification facultative des demandes IP.

Voici deux exemples:

Zend Framework Service Class

PHP Soap Server class

+1

Je vous ai donné un +1 pour ne pas recommander un cadre surdimensionné, car il n'est souvent pas nécessaire et excessif. des API simples peuvent être générées facilement comme vous l'avez dit avec le protocole json – DonSeba

-1

Je sais que ce ne est pas basé sur PHP comme vous avez demandé, mais j'étais dans le même bateau pas si longtemps besoin d'un service Web, beaucoup des cadres de PHP là-bas ne l'a pas vraiment coupé pour moi (à moins que vous connaissiez ZEND qui est OK mais c'est énorme!) donc j'ai pris à regarder http://nodejs.org/ et l'ai trouvé très utile et assez facile à utiliser.

0

Je voudrais simplement utiliser la fonctionnalité JSON intégrée, mais si vos clients API nécessitent SOAP/WSDL, je suggère l'ensemble de classes NuSoap essayé et testé.