如何创build网站API

我得到了很多客户的询问,他们问我如何使移动应用程序连接到他们的网站来检索数据,允许用户login等。他们大多数都有基于PHP的网站,但是没有任何关于使API与接口有关的线索他们。 他们问我为什么不能直接连接到他们的SQL数据库。 我不认为从移动应用程序这是一件好事。 我宁愿他们有一些API的地方。

就基于PHP的网站而言,在实现此目的的API时,最好的select是什么?

Solutions Collecting From Web of "如何创build网站API"

您想查看RESTful Web服务 。 在这里看看这个wiki。 您的客户需要从本质上构buildPHP应用程序,这些应用程序通过一些REST兼容数据types(例如JSON,XML,SOAP等)为其网站的底层数据提供服务。有许多内置的PHP函数可以快速转换PHP数据结构成这些格式。 这将使您能够构build移动应用程序,使得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

只需使用一个控制器创build一个api子域,并为每个特定任务创build一个方法 – 在json中输出数据,然后设置:

 http://api.theirsite.com/get-users http://api.theirsite.com/get-news 

等等…

REST是构build检索资源的一种非常好的方式。 创buildREST API是定义可在数据上执行的一组操作的一种非常有用的方法,同时在API和数据库中的数据之间保持相对较薄的抽象层。 也就是说,这并不是微不足道的,但它确实迫使人们考虑使用和安全问题,并且是非常可扩展和面向未来的。

好吧,我在Drupal,Joomla或Wordpress上看过很多网站。 如果是这样的话,那些有一个API模块,你可以启用,然后build立一个Android应用程序使用这些。

我们经常遇到这个问题,所以我们引入了一个简单的Java Servlet,它使用XQUERY作为我们自己的格式和目标站点之间的层,主要存储在数据库中。 它通过REST服务将这些数据转换成JSON。 这可以使我们灵活和快速的每一个新的系统,如Joomla,Wordpress等…它为我们工作多年。 适应一个新的系统是一天的最后一天。 您可以使用Stylus-Enterprise使用UIdeviseXquery文件。 如果你想坚持PHP,Luracast Restler确实做得很好。

使用Php Slim Micro Framework创buildREST APi。 它很容易设置和编写代码。

谢谢

而不是应用程序build议他们使用他们的移动网站和封装只是为了打开浏览器,并将其redirect到移动网站。