创建由Website和Mobile使用的API

mir*_*rvo 5 javascript php api android

在设计一个易于被不同客户(Web和移动设备)使用的API时,我应该为每个客户端创建一个端点吗?

例如,在尝试为Web和移动设备创建API时,我想到了以下内容:

  1. 创建数据库
  2. 创建API
  3. 创建网站以使用API
  4. 创建Mobile版本以使用API

换句话说,我可以创建一个单一的API端点,例如:

http://site.ne/api/register - 适用于网站和移动设备

或者,我应该为网站创建一个单独的处理程序,比如说.

http://site.ne/register.php - 网站
http://site.ne/api/register - mobile

我相信Facebook,Twitter等正在做前者.如果这是正确的做法,我只想清除我的疑虑并强化我的理解.

请带我一些简单的例子.如果有人在之前使用相同的方法进行了缓冲并获得了胜利者,请分享您的解决方案.

Rom*_*ski 0

无论客户端如何,您的 API 都应该以相同的方式运行。这就是 RESTful API 流行的部分原因。您正在为所有客户构建一项服务。以这种方式构建 API 使其更具可维护性和可扩展性(假设它是无状态的)。这体现了网络的本质。

考虑到这一点,您的客户希望与您的服务进行交互。它想要检索数据并将数据发回(然后使用 HTTP 动词来表示意图)。如何表示这些数据是客户端的责任,并且独立于服务。

Web 客户端可以进行 Ajax 调用来检索数据并以 HTML 形式呈现。HTML 可以响应以支持多个设备/屏幕。胖客户端还可以进行网络调用并根据需要进行显示。每次您需要另一个客户端时,就构建它。服务保持不变。客户端也可能是其他服务 - 这有帮助吗?

如果您认为 URL 代表资源,那么将“api”添加到您的 URL 就是一种反模式。如果您有兴趣阅读有关 REST 的更多信息,那么我建议您阅读 Jim Webber 的《Rest in Practice》。无论您选择构建 API,我仍然会推荐一种不知道其所服务的客户端的接口。