2009-11-06 3 views
1

Je veux écrire un serveur PHP extrêmement léger qui gère les demandes de données des clients distants. Les données renvoyées sont tabulaires (comme celles des données lues à partir d'un fichier CSV ou d'une table de base de données). Le "problème" est que je pourrais renvoyer potentiellement plusieurs centaines de milliers de lignes de données - avec une largeur de colonne comprise entre 10 et 15 (selon le type de données demandées).léger serveur PHP RESTful

En bref, les données renvoyées pourrait être énorme - et tenter de sauver la bande passante, et aussi augmenter la vitesse de transmission, je voudrais compresser les données (peut-être chiffrer optionnellement alors que nous y sommes) avant de le renvoyer au client.

Je ne sais pas comment écrire le script côté serveur pour gérer la requête (et renvoyer les données ou le code d'erreur).

Par souci de simplicité, laisse supposer que je suis en train de lire les données à partir d'un fichier plat, en utilisant fopen, je pourrais avoir quelque chose comme ceci:

<?php 
    // extract request variables and determine action required based on REQUEST params 
    // handle request (fetch requested data) 
    // if no error then return compressed (and encrypted?) data 
    // else if error return error code 
?> 

Ne pas être très familier avec PHP, Quelqu'un pourrait-il s'il vous plaît aidez-moi à "étoffer" ce code stub un peu plus (en particulier la partie lorsque nous retournons les données compressées (ou code d'erreur) via des en-têtes HTTP, etc.).

Dernier point mais non le moindre, je dois préciser que le client est susceptible de fonctionner sur une autre plate-forme et une autre langue (j'écrirai le client en C++), donc je voudrais utiliser le texte ASCII PLAIN pour le transfert de données (par opposition à XML qui est très verbeux et nécessite l'analyse à l'autre extrémité).

+1

Par curiosité, avez-vous l'intention de créer une prime pour cette question, ou est-ce que ma réponse sera acceptée? Cordialement. –

Répondre

2

Je pourrais vous suggérer d'utiliser ZendFramework pour votre serveur REST. Les conventions de base ont déjà été implémentées pour vous, ce qui vous permettra de vous concentrer sur vos besoins spécifiques (données, texte, compression, etc.).

Voici la page de manuel de référence pour Zend REST: http://framework.zend.com/manual/en/zend.rest.server.html

De plus, voici un blog que j'ai écrit dans mon expérience personnelle avec l'aide de Zend REST: http://ajcoon.blogspot.com/2009/09/rest-services-supporting-xml-and-json.html

Même si je l'ai utilisé pour revenir XML et JSON, on pourrait facilement définir leur propre vue qui utilise un codage/format différent pour leurs données.

Questions connexes