如何制作移动应用的服务器后端?

Posted

技术标签:

【中文标题】如何制作移动应用的服务器后端?【英文标题】:How to make the server backend of a mobile app? 【发布时间】:2017-01-11 16:04:26 【问题描述】:

我是一名 android 开发人员,我想制作一个应用程序,在地图上显示用户并根据他们的位置执行任务。

应用程序的整个模型必须在服务器中运行。我需要一个 API:

接收用户位置 根据用户的位置执行计算 用结果向特定用户发送响应

问题是我在做服务器端编程方面的经验是 0。

你能建议我一种制作服务器的方法吗?

我查看了 Google Colud Platform 和 this 视频。该视频解决了应用程序和服务器之间的连接问题,但我真正需要的是对模型进行编码并将其部署到云端。

作为一个没有服务器端编程经验的开发人员,我为这样的应用构建 API 的方式是什么?

您能否向我推荐一个教程,介绍为移动应用构建云后端的过程?

【问题讨论】:

您考虑过 Firebase 吗?这是谷歌提供的一个很棒的BAAS(Backend as a Service),你可以少担心应用程序的后端。看看:firebase.google.com/features 想知道您是通过哪种方式开发此应用程序后端的?我的情况与您描述的应用程序非常相似。我发现使用 firebase 后端很难配置复杂的逻辑,我认为我应该实现自己的 restful 后端。任何提示将不胜感激。 当时我使用Spring平台开发后端,因为它是用Java编写的。现在,我强烈建议您查看 golang,以及使用这种语言开发高复杂度的后端是多么容易。另外,最后,Go 值得了解 感谢您的推荐,不幸的是,我有时间为这个项目学习一门新语言。我将看看一个 Spring 平台。对于您在问题中描述的特定逻辑的解决方案,我是否有任何改变? 【参考方案1】:

这是一个非常复杂的问题。我不建议使用像 FireBase 这样的“现成”解决方案,因为以后需要时将其转换为“适当的”API 会更加困难。如果您了解 Android,那么您就了解 Java,那么学习使用我推荐的 Spring Framework 之类的框架将毫无问题。后端的 Java 需要一个 Java Servlet 容器,例如 Tomcat。首先,您应该为此在您的机器上设置一个开发环境。我建议为此搜索 Spring Framework 教程,即 Spring Framework REST 教程。

其次,您需要像 mysql 或 MongoDB 这样的数据库来存储数据。 Spring 带有与大多数最常见数据库的现成连接,因此使用它们非常容易。

当您准备好部署您的服务时,我建议您使用像 Heroku.com 这样的 PAAS,您可以先在其中免费运行您的服务。通过这种方式,您可以自己控制一切,还可以学习一项有用的技能。

【讨论】:

我正在使用 Spring。谢谢:)【参考方案2】:

由于您来自 JAVA 背景,您只需要一些基本的构建块就可以了。

使用 PASS:考虑到您对服务器端的任何内容都不熟悉,他们会从您这边获取任何 devops,这将是一个很大的解脱。我推荐使用 Heroku 或 App Engine。这是顶部带有 JAVA 的 App Engine 指南。 https://cloud.google.com/appengine/docs/java/

数据库:目前还不确定您是如何存储和管理用户数据的,但如果您需要数据库,现在有各种可用的数据库。 Firebase 之所以是最佳建议,是因为它利用了实时性,让您无需花费大量时间即可进行控制。

API:您将获取用户的地理位置并将其发送到服务器。在服务器上,您需要将其处理为真实世界的位置和任何其他逻辑。为此,您需要使用 Google 的 GeoLocation 和反向地理编码 API。在此处查找 api:https://console.cloud.google.com/apis/

另外,如果有任何帮助,App Engine 和 Heroku 都提供免费限制,应该足以满足您的用例。

【讨论】:

【参考方案3】:

由于您在服务器端开发方面的经验有限,我建议您使用后端即服务平台。这种方法的好处是让您可以将时间集中在您的竞争优势所在的客户端编码上,并让您利用多年的服务器端开发经验,而无需提升技术。这也意味着您可以快速迭代并以更低的风险测试功能创意。

那里有几个选项,但在您的情况下,您需要提供足够灵活性来实现自定义逻辑和自定义数据模型的东西。某些平台允许您使用 REST API 端点创建完整的后端应用程序,并自动负责部署、安全和管理。后端服务提供商的一些示例可以在这里找到https://en.wikipedia.org/wiki/Mobile_backend_as_a_service。

有些平台实际上允许您构建一个完整的自定义应用程序而无需实际编写任何代码,其中一些平台提供现成的组件(如聊天、排行榜等),但灵活性较差。

以下是后端即服务提供商列表:

https://quickblox.com/ https://www.appcelerator.com/ http://www.configure.it/ https://cloudboost.io/ http://api.shephertz.com/ https://backendless.com/ http://pipegears.com(无需编码)

您没有提供有关您要在后端实现的任务的具体细节,但您可能可以通过一个简单的 REST API 来满足您的要求,该 API 接受您的位置数据、运行业务逻辑、从您的数据模型并返回客户需要的任何数据。 (抱歉,如果没有您的要求的详细信息,我无法获得更具体的信息)。如果您正在处理位置数据等敏感信息,我强烈建议您使用 TLS/SSL(即 https)保护 api,或者确保您使用的平台提供此功能。

【讨论】:

以上是关于如何制作移动应用的服务器后端?的主要内容,如果未能解决你的问题,请参考以下文章

仅使用 Azure 移动服务 .Net 后端进行推送

如何选择后端作为移动系统的服务提供商以及云计算的成本问题[关闭]

作为一名十年的后端开发,我是如何看待移动应用设计的?

在 Azure 移动应用服务后端将字符串属性反序列化为 Json 对象

如何选择可靠的游戏Baas服务

移动应用使用 Azure *** 连接到本地后端