首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开发与移动端API相同的网站

开发与移动端API相同的网站
EN

Stack Overflow用户
提问于 2013-04-13 18:06:16
回答 8查看 5K关注 0票数 9

我只熟悉原生移动开发,不熟悉web开发,所以请原谅我的天真。

移动应用程序的API通常涉及通过POST请求或从API获取数据。数据将以JSON的形式返回。对于这个例子,假设API是一个简单的由Sinatra / Ruby驱动的API,它将被移动设备和网站使用。

使用相同范式的网站开发有哪些选择- web前端从与移动应用程序相同的JSON端点获取数据?

我听说过AngularJS和Backbone.js这两个名字,不过也许Sinatra就足够了?我不喜欢使用PHP。

我更喜欢轻量级的解决方案。如果可能,我希望它能够在模型更改时更新页面,尽管我猜这将取决于后端API的更改。

EN

回答 8

Stack Overflow用户

发布于 2013-04-21 17:10:33

如果你的服务和UI层是完全分开的,你将会得到最大的回报。我的意思是,在设计服务时不要考虑特定的UI,因为这样做可以最大限度地重用它们。我推荐基于RESTful和web的服务实现,因为它们为UI集成提供了很大的灵活性。从字面上看,现在有大量的库能够使用这些服务中的数据。

我不是Ruby开发人员,但以下是Sinatra中一个简单的web服务实现:

代码语言:javascript
复制
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应用程序与一个移动应用程序就变成了一个选择合适的集成库的问题:

  • HTML(5)/CSS/Javascript.更强大的选项之一,因为它可以用于实现移动和web应用程序。上述三种技术构成了新的Web2.0体系结构的核心,并且存在各种框架:Angular.jsExt.jsBackbone.jsKnockout.js,甚至还有jQuery MobileBootstrap。目前,这是将web服务API与web应用程序集成的最常见方式。请注意,在某些情况下,您甚至可以只设计一个网站,然后将其用作您的移动应用程序的基础(通过XSS / example).
  • Middle WebView,用于XSS层代理:如果您想在浏览器中取消Ajax (出于安全目的,或避免iOS问题),您可以走这条路。该代理可以用任何语言(Java、PHP、Perl语言)编写,并负责使用web服务并为UI生成动态超文本标记语言。

作为一个真实的示例,我当前的项目有大量使用Java /JAX-RS构建的RESTFul web服务,它们运行在集群的JBoss服务器上。默认情况下,这些服务返回JSON,但也可以生成XML,并可从以下位置访问:

使用Jersey REST Client的AFNetworking/RestKit/NSURLConnection

  • Android应用程序组合构建的
  • 使用Ext.js
  • iOS应用程序构建的各种内部和外部web应用程序

完全相同的服务由多个不同的平台/UI使用,不需要在服务端进行任何更改。这就是我相信你正在努力实现的目标。

票数 6
EN

Stack Overflow用户

发布于 2013-04-13 18:39:18

一种选择是,既然你熟悉本机开发,我假设你对java很熟悉,那么我建议你使用DropWizard进行API开发,它将通过RESTful端点提供JSON。

除了用web开发语言编写代码外,webite的处理过程与您在移动应用程序中的处理完全相同。

向API发送请求。获取JSON响应。将JSON解析为对象。使用HTML、CSS等创建对象的UI表示。显示UI重新表示。

您所需要做的就是决定使用哪种语言来创建POST/GET - PHP、Ajax或其他您选择的语言。

票数 3
EN

Stack Overflow用户

发布于 2013-04-13 18:28:32

根据我的经验,当我开发一个多平台的应用程序时,我会尽可能地让我的代码和算法变得可靠。因此,当我准备一个应用程序接口(例如,使用PHP和MySQL )时,我对所有平台都使用相同的数据检索格式。移动项目和web项目都可以通过JSON或XML读取和发送数据,所以我认为这没什么关系。

尽管如果您将所有数据库连接集中在您的API上,您将在很大程度上减少连接(和错误)的数量。

你可以在Foursquare上看到一个运行的例子。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15986626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档