轻量级RESTful PHP服务器

时间:2009-11-06 11:33:40

标签: php encryption compression rest

我想编写一个非常轻量级的PHP服务器来处理来自远程客户端的数据请求。返回的数据是表格式的(就像从CSV文件或数据库表中读取的数据一样)。 “问题”是我可能返回数十万行数据 - 列宽在10到15之间(取决于所请求数据的类型)。

简而言之,返回的数据可能是 HUGE - 并且为了节省带宽,并且还提高了传输速度,我想压缩数据(也许可以选择对它进行加密)在发送回客户端之前就已经开始了。

我不知道如何编写服务器端脚本来处理请求(并发回数据或错误代码)。

为了简单起见,假设我正在使用fopen从平面文件中读取数据,我可以这样:

<?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
?>

不熟悉PHP,有人可以帮助我“充实”这个存根代码(特别是当我们通过HTTP头文件返回压缩数据(或错误代码)时的部分)?

最后但并非最不重要,我必须指出客户端可能正在另一个平台和另一种语言上运行(我将用C ++编写客户端),所以我想使用PLAIN ASCI文本数据传输(与XML非常相似,需要在另一端解析)。

2 个答案:

答案 0 :(得分:2)

我可能会建议您将ZendFramework用于REST服务器。已经为您实现了基本约定,这将使您能够专注于您的特定要求(数据,文本,压缩等)。

以下是Zend REST的参考手册页: http://framework.zend.com/manual/en/zend.rest.server.html

此外,这是我在使用Zend REST时的个人经历中写的博客文章: http://ajcoon.blogspot.com/2009/09/rest-services-supporting-xml-and-json.html

即使我用它来返回XML和JSON,也可以轻松定义自己的视图,为其数据使用不同的编码/格式。

答案 1 :(得分:0)

可以考虑:将数据表上传到Amazon SimpleDB,然后使用:http://blog.webservius.com/2010/09/14/introducing-amazon-simpledb-integration/(它会自动将任何SimpleDB表转换为功能齐全的REST API,并提供JSON支持,开发人员注册页面等等......)