[英]Developing websites with same API as mobile
我只熟悉原生移动开发,而不是网络开发,所以请原谅我的天真。
移动应用程序的API通常涉及通过POST请求或从API请求GET数据。 数据将作为JSON返回。 为了这个例子,假设API是一个由Sinatra / Ruby驱动的简单API,它将被移动和网站使用。
使用相同范例进行网站开发的选项有哪些 - 网络前端从与移动应用程序相同的JSON端点获取数据?
我听说过AngularJS和Backbone.js的名字,但也许Sinatra就足够了? 我宁愿不使用PHP。
我更喜欢轻量级的解决方案。 如果可能,我希望它能够在模型更改时更新页面,但我猜这将取决于后端API更改。
如果您的服务和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
归因: 使用Sinatra和RESTClient的轻量级Web服务 。
请注意,用于服务实现的实际语言/平台是无关紧要的,只要其RESTful,并返回客户端可以轻松使用的数据。 完成设置后,设计Web应用程序与移动应用程序就成了选择合适的集成库的问题:
作为一个真实的例子,我当前的项目有大量的RESTFul Web服务,使用在集群JBoss服务器上运行的Java EE / JAX-RS构建。 服务默认返回JSON,但也可以生成XML,并从以下位置访问:
多个不同平台/ UI使用完全相同的服务,服务端无需更改。 这是我相信你想要完成的。
一个选项,因为你熟悉本机开发,我假设你对java很好,那么我建议你使用DropWizard进行API开发,它将通过RESTful端点提供JSON。
除了您使用Web开发语言进行编码之外,webite与您在移动应用程序中执行的过程完全相同。
发送请求API。 获取JSON响应。 将JSON解析为对象。 使用HTML,CSS等创建对象的UI表示。显示UI表示。
您需要做的就是决定使用哪种语言来制作POST / GET - PHP,Ajax或您选择的其他语言。
根据我的经验,当我开发一个多平台应用程序时,我尝试尽可能地使我的代码和算法具有可用性。 因此,当我准备一个API(例如PHP和MySQL)时,我对所有平台使用相同的数据检索格式。 移动项目和Web项目都可以通过JSON或XML读取和发送数据,所以我认为没有问题。
虽然如果集中API上的所有数据库连接,您将在很大程度上减少连接(和错误)的数量。
您可以在Foursquare上看到一个正在运行的示例。
据我所知,您正在寻找一个易于学习和构建动态网站的轻量级Web开发框架。
根据您的要求,Web前端应该能够发出HTTP GET / POST请求以从API获取JSON数据。 以下选项最适合您:
GET / POST请求是使用JS库(例如jQuery)进行的AJAX调用。 另外,jQuery提供了解析JSON响应的函数。
所以基本上你需要学习PHP和jQuery,它们都非常受欢迎且易于使用,并且在它们背后有很大的社区支持。
AngularJS非常适用于单页类型的应用程序,可以提供Web服务。 它比jQuery ajax调用(imo)有更陡峭的学习曲线,因此根据您的需要,使用jQuery创建应用程序可能更有意义。
其他JS MVC框架(knockout,ember.js)可能具有与从JSON源获取数据类似的功能,但我并不熟悉它们,因此您可以查看并决定。
否则,您只需创建一个起始html页面,并在加载后启动对服务的ajax调用。
在我的“前世”中,我曾经是一名Web开发人员(已有10年),现在我是一名全职移动开发人员(自2。5年前开始),我使用SOAP或REST API创建了Android和iOS应用程序。
在Web上,我喜欢使用JQuery和JQuery-UI。 JQuery有非常简单的方法从SOAP或REST Web服务获取JSON数据,以填充网格,表单,在等待响应时显示进度的控件等。查看: http : //api.jquery.com/jQuery。的getJSON /
我正在开发一个带有REST操作和JSON数据的iOS应用程序,Web开发团队正在构建一个后端网站,使用backbone.js和JSON-REST操作将前端与我从iOS通过的相同后端连接起来JSON-REST。 我知道他们使用backbone.js的解析(读取JSON),collection.toJSON()(转换为JSON)和模型同步方法(更多来自http://backbonejs.org/ )。
所以...我同意其他人,只要你能从REST获得JSON,你就可以在你的网络和移动应用程序上使用相同的方法。
这是一篇很好的博客文章,关于以正确的方式执行RESTful API服务器: http : //blog.mugunthkumar.com/articles/restful-api-server-doing-it-the-right-way-part-1/ 。
祝好运!
通过使用Web服务(JSON内容)开发Web应用程序有两种主要方法
基于纯HTML的方法 :在此模型中,您不需要任何服务器端脚本,如PHP,JSP和ASP.Net等。您的基于JSON的REST服务将被JavaScript使用并将数据呈现为HTML组件。 编程模型现在更受欢迎,应用程序将流畅并且表现得像桌面应用程序。 有很多框架可以帮助您实现这一目标。 在之前的答案中已经提到过它们,例如Angular.js,Ext.js,Backbone.js,Knockout.js,DoJo,Bootstrap。 甚至一些此框架也支持与UI组件和基于服务器端JSON的休息服务的数据绑定。 不需要任何编码来使用REST服务和呈现UI组件。 它将通过此客户端框架自动完成。 示例DoJo
HTML和服务器端脚本 :在这种方法中,您需要使用任何服务器端脚本语言,如PHP,JSP,JSF和RoR,Django等框架来实现此目标。 因为它涉及其他脚本语言和框架,因此它具有与基于HTML和JS的方法相比的学习曲线。
总之,我建议从第一种方法开始。
既然你已经在Ruby之上构建了api,那么可以考虑使用Ruby on Rails。 我是一名C#/ iOS开发人员,直到最近才开始研究Ruby on Rails。 这是一种非常容易和灵活的优秀语言。 有关更多信息,请访问此链接http://railsinstaller.org/ 。
它为您提供了实现jQuery和其他基于javascript的库的更大灵活性。
您可以使用Sqlite,MySql和PostgreSQl数据库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.