我让很多客户问我关于制作连接到他们网站的移动应用程序来检索数据,允许用户登录等等。他们中的大多数都有基于PHP的网站,但是没有关于制作API的任何线索与他们交流。他们问我为什么不能直接连接到他们的SQL数据库。我不认为从移动应用程序做这件事是件好事。我希望他们有一些API。
就基于PHP的网站而言,在为此目的实现API时,最佳选择是什么?
答案 0 :(得分:4)
只需使用单个控制器创建一个api子域,并为每个特定任务创建一个方法 - 在json中输出数据,然后设置:
http://api.theirsite.com/get-users
http://api.theirsite.com/get-news
等...
答案 1 :(得分:2)
您希望了解 RESTful Web服务。看看这个here的维基。您的客户需要基本上构建PHP应用程序,通过一些符合REST的数据类型为其网站的底层数据提供服务,例如: JSON,XML,SOAP 等。有许多内置的PHP函数可以将PHP数据结构快速转换为这些格式。这将使您能够构建移动应用程序,使HTTP请求获取数据,然后以自己独特的方式显示数据。
JSON支持的服务示例如下:
$action = $_GET['action'];
switch($action) {
case 'get-newest-products':
echo json_encode(getNewestProducts());
break;
case 'get-best-products':
echo json_encode(getBestProducts());
break;
.
.
.
default:
echo json_encode(array());
break;
}
function getNewestProducts($limit = 10) {
$rs = mysql_query("SELECT * FROM products ORDER BY created DESC LIMIT $limit");
$products = array();
if (mysql_num_rows($rs) > 0) {
while ($obj = mysql_fetch_object($rs)) {
$products[] $obj;
}
}
return $products;
}
function getBestProducts($limit = 10) {
$rs = mysql_query("SELECT * FROM products ORDER BY likes DESC LIMIT $limit");
$products = array();
if (mysql_num_rows($rs) > 0) {
while ($obj = mysql_fetch_object($rs)) {
$products[] $obj;
}
}
return $products;
}
您可以按如下方式查询API(使用mod_rewrite)http://myapi.mywebsite.com/get-newest-products
答案 2 :(得分:1)
REST是一种非常好的构建资源以进行检索的方法。创建REST API是一种非常有用的方法,用于定义可对数据执行的操作集,同时在API和数据库中的数据之间保持相对较薄的抽象层。也就是说,这并不是一件轻而易举的事,但它确实迫使人们考虑使用和安全方面的问题,而且非常可扩展且面向未来。
答案 3 :(得分:0)
好吧,我在Drupal,Joomla或Wordpress上看过很多网站。如果是这种情况,那些具有您可以启用的API模块,然后使用这些模块构建Android应用程序。
答案 4 :(得分:0)
我们经常遇到这个问题,我们引入了一个简单的Java servlet,使用XQUERY作为我们自己的格式和目标站点之间的层,主要存储在数据库中。它通过REST服务将该数据转换为JSON。这可以使我们灵活,快速地适用于Joomla,Wordpress等新系统......它可以为我们工作多年。每天适应新系统一天。您可以使用Stylus-Enterprise通过UI设计Xquery文件。如果你想坚持PHP,Luracast Restler确实做得很好。
答案 5 :(得分:0)
使用Php Slim Micro Framework创建REST APi。它很容易设置和编写代码。
感谢
答案 6 :(得分:-2)
而不是应用程序建议他们使用他们的移动网站和包装器来打开浏览器并将其重定向到移动网站。