移动应用程序的前端-后端通信
Posted
技术标签:
【中文标题】移动应用程序的前端-后端通信【英文标题】:Frontend-backend communication for a mobile app 【发布时间】:2014-07-27 08:15:54 【问题描述】:我对与服务器和后端服务相关的东西还很陌生,我想开发一个带有后端部分的移动应用程序。我希望这个后端服务于一个 ios 应用程序、一个 android 应用程序以及一个网站。 我今天关心的是前端部分如何与后端部分通信:
它的工作方式与网站的工作方式相同吗? (对服务器的 Http 请求?) 前端和后端之间的数据交换是如何发生的? 哪些是我的问题的常见解决方案? 是否有一种有效的方法来设计此后端以服务于移动应用程序和网站? 解析 (https://parse.com/) 是一个好的起点吗?谢谢
【问题讨论】:
【参考方案1】:依次查看您的问题:
它的工作方式与网站的工作方式相同吗? (对服务器的 Http 请求?)有很多选择,但目前最常见或最流行的可能是使用 RESTFUL 接口: http://en.wikipedia.org/wiki/Representational_state_transfer
以前,基于 SOAP 的 Web 服务可能是最常见的选择: http://en.wikipedia.org/wiki/SOAP
请参阅此处,了解为什么您现在可能使用 REST 而不是 SOAP: Why would one use REST instead of SOAP based services?
前端和后端之间的数据交换是如何发生的?假设 REST,HTTP 用于传输消息,应用程序数据通常包含在 XML 或 JSON 表单中
哪些是我的问题的常见解决方案?我认为问题/答案的其他部分已经涵盖了这一点。
有没有一种有效的方法来设计这个后端来为移动应用程序和网站提供服务?这在很大程度上取决于您的特定服务器应用程序,尤其是它的大小和架构。如果服务器应用程序被分解为组件或部分,并且为 Web 应用程序生成“视图”或“html”页面的部分是不同的,并且与服务器应用程序的“后端”部分以及您的应用程序的“后端”部分完全分开是一种类型,无论最终用户使用的是网站还是移动设备,功能在很大程度上是相同的,只是为不同设备生成视图的方式不同,那么有效的设计就是保持尽可能多的后端通用。如果移动客户端使用时应用程序的使用非常不同,这可能没有意义。更一般地说,高效的设计会在移动应用程序和 Web 应用程序之间保持尽可能多的通用功能。
绝对值得熟悉“模型视图控制器”架构模式作为大多数服务器端框架,以及许多 javascript Web 客户端框架,甚至 iOS 和(在较小程度上)Android 框架使用这些概念:
http://en.wikipedia.org/wiki/Model–view–controller
您是否需要移动应用上的“推送”或类似通知功能的一个重要考虑因素。如果是这样,您可能想查看一些常见的解决方案以了解它们是否满足您的需求 - 可能最容易从 Apple 和 Google 的产品开始了解,但也有许多其他解决方案可用:
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html
http://developer.android.com/google/gcm/index.html
解析 (https://parse.com/) 是一个好的起点吗?我不熟悉这项服务,但您最好先看看一个简单的基于 REST 的方法,看看它是否满足您的需求。
【讨论】:
【参考方案2】:回答你的问题
解析 (https://parse.com/) 是一个好的起点吗?
是的。
但我建议你好好阅读诸如
之类的主题 REST 服务 RESTful services vs SOAP - 一篇好文章 REST/JSON 与 REST/JSON解析等服务称为Mobile Backend as a Service (MBaaS)。它们非常适合为缺乏后端开发经验的移动开发人员快速创建 Web 服务。
在 google 上快速搜索“MBaaS”将返回许多类似于 parse 的服务,并且大多数提供免费的开发者帐户。 (每秒/应用程序有一定数量的免费 API 调用) 我也使用过类似的 Apigee,开源等效项是 Usergrid。
这些服务将为开发人员提供一个 GUI 来创建和部署服务,并且这些服务立即可用。 将提供单独的测试和生产端点。 除了基本的 CRUD 操作之外,这些服务还将支持轻松的社交网络集成、缓存和分析(取决于服务提供商)
安全性、可扩展性等功能由 MBaaS 提供商(Like Parse)内置。
【讨论】:
以上是关于移动应用程序的前端-后端通信的主要内容,如果未能解决你的问题,请参考以下文章