首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建网站API

如何创建网站API
EN

Stack Overflow用户
提问于 2011-07-08 03:00:37
回答 7查看 543关注 0票数 9

我有很多客户问我如何制作手机应用程序来连接到他们的网站来检索数据,允许用户登录等。他们中的大多数都有基于PHP的网站,但对如何制作API来与之交互却一无所知。他们问我为什么我不能直接连接到他们的SQL数据库。我不认为在移动应用上做这件事是件好事。我更希望他们有某种形式的API。

就基于PHP的站点而言,在实现用于此目的的API时,最佳选择是什么?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-07-08 03:15:29

您需要查看RESTful web服务。看看这个here的维基吧。你的客户基本上需要构建应用程序,这些应用程序通过一些符合REST的数据类型来服务于网站的底层数据,例如PHP、XML、SOAP等。这将使您能够构建移动应用程序,这些应用程序发出HTTP请求以获取数据,然后它可以以自己独特的方式显示数据。

基于JSON的服务示例如下:

代码语言:javascript
复制
$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;
}

您可以按如下方式查询接口(打开mod_rewrite ) http://myapi.mywebsite.com/get-newest-products

票数 2
EN

Stack Overflow用户

发布于 2011-07-08 03:04:44

只需创建一个具有单个控制器的api子域,并为每个特定任务创建一个方法-以json格式输出数据,您就设置好了:

代码语言:javascript
复制
http://api.theirsite.com/get-users
http://api.theirsite.com/get-news

等等。

票数 4
EN

Stack Overflow用户

发布于 2011-07-08 03:04:42

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6615691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档