[英]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.