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

Zeb*_*ebs 7 iphone api google-app-engine web-services ios

我一直在开发iOS应用程序,但它们都处理设备上的信息.

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

我需要的是一个很好的教程,如何创建我自己的在线SQL数据库和API来访问它的所有信息.

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

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

我在网上找到了很多教程,但我知道Stack Overflow用户拥有丰富的资源知识,可以帮助我和其他开发人员更快,更轻松地学习和学习.

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

非常感谢您的帮助.

Pet*_*ego 7

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

缺点是它有一些不同的编程模型,因此开发人员从servlet + SQL背景开始倾向于使用它.既然你是新手,那应该不是问题.

我下面的所有建议都是Java,因为这是我所知道的.希望其他人会发布呈现其他平台/语言的答案.

要实现此目的,您需要:

  1. 设置Web服务.使用REST,因为这是最常见且易于设置/使用的.我尝试了所有主要的Java REST框架,最终得到了Resteasy,因为它只是有效并且有恕我直言的最佳文档.

  2. 了解GAE数据存储的工作原理.有几个API可以使用数据存储区:

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

    湾 JDO/JPA是java ORM标准,但是它们是为SQL数据库创建的,并且实际上是在数据存储区中.我建议不要使用它们,因为它们只是低级别的附加层,也只是试图欺骗开发人员Datastore是一个SQL数据库.

    C.客观化.这是第三方OSS库,但作者是Google支持的AFAIK.它是一个低级别的层,但是以一种非常自然的方式,所以不要掩盖数据存储区的功能.我推荐使用它.

  3. 验证.您需要身份验证.GAE支持开箱即用的OpenID/OAuth(只需federated login在命令面板中勾选选项).现在棘手的部分是使用iPhone和其他设备:

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

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