如何创建我自己的 Web API / Web 服务

问题描述 投票:0回答:2

我开发 iOS 应用程序已经有一段时间了,但它们都处理设备上的信息。

我想扩展我的知识和我的应用程序的吸引力。

我需要的是一个关于如何创建我自己的在线 SQL 数据库和一个 API 来访问其中所有信息的好教程。

我已经使用了几个 API(Twitter、Facebook、Google 等),所以在 iOS 方面我已经准备好了。

我很乐意使用 Google App Engine 来实现它,但如果您知道更好的方法来实现这一点,我非常高兴听到它们;我听说 Java、.net 和 Ruby 是最好的选择。

我在网上找到了很多教程,但我知道 Stack Overflow 用户拥有丰富的资源知识,可以帮助我和其他开发人员更快、更轻松地启动和运行并了解更多信息。

我认为这个问题的答案对于所有对 Web API 感兴趣的开发人员来说都是一个很好的资源。

ios web-services google-app-engine
2个回答
7
投票

恕我直言,AppEngine 是一个不错的选择,因为几乎不需要设置/管理它。它还预先打包了强大的服务,如数据存储、任务队列、用户身份验证、消息传递等。对我来说最大的优势是数据存储,它是无模式的,因此您不必随着应用程序的进展不断更新/管理模式。

缺点是它的编程模型有些不同,因此来自 servlet+SQL 背景的开发人员一开始往往会遇到困难。由于您是新手,所以这应该不是问题。

我下面所有的建议都是Java,因为这是我所知道的。希望其他人能够发布提供其他平台/语言的答案。

要运行此程序,您需要:

  1. 设置网络服务。使用 REST,因为这是最常见且易于设置/使用的。我尝试了所有主要的 Java REST 框架,最终得到了 Resteasy,因为它可以正常工作,并且拥有最好的文档。

  2. 了解 GAE 数据存储的工作原理。有一些 API 可以使用数据存储:

    a.低级很麻烦,因为您需要使用它的模型类(实体),因此您将在您的对象和此 API 返回的实体对象之间进行大量复制。

    b. JDO/JPA 是 java ORM 标准,但它们是为 SQL 数据库创建的,并且实际上是硬塞到数据存储上的。我建议不要使用它们,因为它们只是低层之上的附加层,并且只是试图愚弄开发人员,让他们相信数据存储是一个 SQL 数据库。

    c. 客观化。这是一个第 3 方 OSS 库,但作者是 AFAIK,由 Google 支持。它是低层之上的一层,但以一种非常自然的方式,因此不会掩盖数据存储功能。我推荐使用它。

  3. 身份验证。您将需要身份验证。 GAE 开箱即用地支持 OpenID/OAuth(只需在命令面板中勾选

    federated login
    选项)。现在棘手的部分是让它在 iPhone 和其他设备上运行:

    a.要求用户在您的 iPhone 应用程序中输入 Google 凭据。有些用户不愿意这样做(例如我)。在这种情况下,请使用 iPhone OAuth 客户端

    b.在嵌入式浏览器中打开 OpenID 登录网页:以编程方式使用 Stack Overflow 进行身份验证


0
投票

我已经用“原始”PHP/MySQL(无框架)完成了几个应用程序后端。这种方法的优点是它真的非常容易做到,并且现有的每个托管公司都支持 PHP 和 MySQL。如果您的后端专用于 iPhone,您甚至可以以 plist 格式的 xml 返回所有数据,该数据需要零解析,并且可以立即在 iPhone 应用程序中转换为字典/数组。

另一个优点是,您可以在您的开发系统或家庭网络上设置测试服务器,并且只要您使用 IP 地址而不是名称,您就可以通过 iPhone 模拟器甚至您的 iPhone 设备在本地测试后端(并且如果如果您是一名优秀的系统管理员/网络人员,您也可以将其设置为使用您的网络名称)。

原始 PHP/MySQL 的缺点是,您无法像 django 等大多数框架一样免费获得用于管理/编辑数据实体的管理员界面。另一个缺点是扩展到大量流量 - 但如果您使用合理的托管服务,这可能不是问题。

网上有大量关于制作 php/mysql 网站的书籍和材料。

© www.soinside.com 2019 - 2024. All rights reserved.