我只熟悉原生移动开发,不熟悉web开发,所以请原谅我的天真。
移动应用程序的API通常涉及通过POST请求或从API获取数据。数据将以JSON的形式返回。对于这个例子,假设API是一个简单的由Sinatra / Ruby驱动的API,它将被移动设备和网站使用。
使用相同范式的网站开发有哪些选择- web前端从与移动应用程序相同的JSON端点获取数据?
我听说过AngularJS和Backbone.js这两个名字,不过也许Sinatra就足够了?我不喜欢使用PHP。
我更喜欢轻量级的解决方案。如果可能,我希望它能够在模型更改时更新页面,尽管我猜这将取决于后端API的更改。
发布于 2013-04-21 17:10:33
如果你的服务和UI层是完全分开的,你将会得到最大的回报。我的意思是,在设计服务时不要考虑特定的UI,因为这样做可以最大限度地重用它们。我推荐基于RESTful和web的服务实现,因为它们为UI集成提供了很大的灵活性。从字面上看,现在有大量的库能够使用这些服务中的数据。
我不是Ruby开发人员,但以下是Sinatra中一个简单的web服务实现:
require 'rubygems'
require 'sinatra'
require 'lib/posts'
post '/posts'
post = Post.create! params
redirect "/posts/#{post.id}"
do
get 'posts/:id' do
@post = Post.find(params[:id])
erb :post
end作者:。
请注意,服务实现使用的实际语言/平台是无关紧要的,只要它的RESTful返回客户端可以轻松使用的数据即可。一旦你有了这样的设置,那么设计一个web应用程序与一个移动应用程序就变成了一个选择合适的集成库的问题:
作为一个真实的示例,我当前的项目有大量使用Java /JAX-RS构建的RESTFul web服务,它们运行在集群的JBoss服务器上。默认情况下,这些服务返回JSON,但也可以生成XML,并可从以下位置访问:
使用Jersey REST Client的AFNetworking/RestKit/NSURLConnection
完全相同的服务由多个不同的平台/UI使用,不需要在服务端进行任何更改。这就是我相信你正在努力实现的目标。
发布于 2013-04-13 18:39:18
一种选择是,既然你熟悉本机开发,我假设你对java很熟悉,那么我建议你使用DropWizard进行API开发,它将通过RESTful端点提供JSON。
除了用web开发语言编写代码外,webite的处理过程与您在移动应用程序中的处理完全相同。
向API发送请求。获取JSON响应。将JSON解析为对象。使用HTML、CSS等创建对象的UI表示。显示UI重新表示。
您所需要做的就是决定使用哪种语言来创建POST/GET - PHP、Ajax或其他您选择的语言。
发布于 2013-04-13 18:28:32
根据我的经验,当我开发一个多平台的应用程序时,我会尽可能地让我的代码和算法变得可靠。因此,当我准备一个应用程序接口(例如,使用PHP和MySQL )时,我对所有平台都使用相同的数据检索格式。移动项目和web项目都可以通过JSON或XML读取和发送数据,所以我认为这没什么关系。
尽管如果您将所有数据库连接集中在您的API上,您将在很大程度上减少连接(和错误)的数量。
你可以在Foursquare上看到一个运行的例子。
https://stackoverflow.com/questions/15986626
复制相似问题