2013-04-13 17 views
8

私はネイティブモバイル開発に精通しています。ウェブ開発ではないので、私のナイビを許しません。モバイルと同じAPIを使用してウェブサイトを開発する

モバイルアプリのAPIは、通常、POSTまたはGET APIを使用してデータをリクエストします。データはJSONとして返されます。この例のために、APIはSinatra/Rubyによって動かされる単純なもので、モバイルとウェブサイトの両方で消費されると考えてください。

同じパラダイムを使用してウェブサイトを開発するためのオプションは何ですか - ウェブフロントエンドはモバイルアプリケーションと同じJSONエンドポイントからデータを取得しますか?

AngularJSとBackbone.jsの名前は聞いたことがありますが、おそらくSinatraで十分でしょうか?私はPHPを使用しないことを好むでしょう。

私は軽量のソリューションを好みます。可能であれば、モデルが変更されたときにページを更新できるようにしたいと思いますが、これはバックエンドAPIの変更に依存すると思います。

+0

私はあまりWeb開発に精通していませんが、正しいことを理解していれば、あなたのウェブサイト(フロントエンド→バックエンド)で同じAPI通信を使用したいと思っています。 JSON、そうですか?それが正しいとすれば、モバイルアプリはJSONを使用してWebサーバーのデータベースからデータを取得し、バックエンドでデータベースとの接続を既に確立しているため、これが最良の選択肢だとは思わない.SoウェブサイトにはJSON APIは私の推測。必要なデータを取得するためにMySQLを使用するだけです。あなたが間違っていると私を訂正してください。 – hardartcore

+0

私は答える時間がありませんが、既存のJSON APIをHTTP経由でアクセスできるようにするには、PHPを使用する必要はありません。 HTMLとKnockoutを使用して、まったく簡単なシングルページアプリケーションを構築できます。 –

答えて

2

私の経験では、私がマルチプラットフォームのアプリケーションを開発しているとき、自分のコードとアルゴリズムを可能な限り再現可能にしようとしています。だから、私はAPI(PHPやMySQLなど)を用意するときに、すべてのプラットフォームで同じデータを取得するフォーマットを使用します。モバイルプロジェクトとウェブプロジェクトの両方でJSONやXMLを介してデータを読み書きすることができるので、問題はありません。

すべてのデータベース接続をAPIに集中させると、接続数(およびエラー数)が大幅に削減されます。

あなたはFoursquareで実行中の例を見ることができます。

3

ネイティブ開発に精通しているので、私はあなたがJavaでうまくいくと思っていますので、DropWizardをAPI開発用に使用することをお勧めします。これは、RESTfulなエンドポイント経由でJSONを提供します。

ウェブサイトは、モバイルアプリで行うのとまったく同じプロセスですが、ウェブデベロッパー言語でコードする以外は同じです。

リクエストをAPIに送信します。 JSONレスポンスを取得します。 JSONをオブジェクトにパースします。 HTML、CSSなどを使用してオブジェクトのUI表現を作成します。 UI表現を表示します。

あなたがする必要があるのは、POST/GET - PHP、Ajax、または他の言語を使用する言語を選択するだけです。

+0

ありがとう、私はそれを見てみましょう、私はiOSの男の詳細ですが。私のJavaは錆びています。 – cannyboy

2

私はあなたが軽いウェブ開発フレームワークを探していて、ダイナミックなウェブサイトを習得して構築するのが簡単だと思います。

ウェブフロントエンドは、APIからJSONデータを取得するためにHTTP GET/POSTリクエストを行うことができるという要件に基づいています。以下のオプションが最良です:GET/POST要求が行われた

  1. (非常に単純な動的なWebサイトのための)HTML + AJAX
  2. PHP + AJAX(のためのより複雑なウェブサイト) JSライブラリを使ったAJAX呼び出しjQuery。さらに、jQueryはJSON応答を解析する関数を提供します。

    本質的にPHP & jQueryを学ぶ必要があります。どちらも非常に人気があり、使いやすく、それらの背後には大きなコミュニティサポートがあります。

2

AngularJSは、単一ページタイプのアプリケーションではうまく機能し、Webサービスを提供します。これはjQuery ajaxコール(imo)よりもはるかに急な学習曲線を持っていますので、必要に応じてjQueryを使ってアプリケーションを作成する方が意味があります。

他のJS MVCフレームワーク(knockout、ember.js)は、JSONソースからデータを取得する際に同様の機能を備えている可能性がありますが、実際にはわかりません。

それ以外の場合は、開始HTMLページを作成して、ロードされたサービスへのajax呼び出しを開始します。

2

私は過去10年間、Webデベロッパーでしたが、私はフルタイムモバイルデベロッパー(2.5年前から)です。私はAndroidとiOSの両方のアプリケーションを作成しました。 SOAPまたはREST API。

ウェブ上ではJQueryとJQuery-UIを使いたいです。 JQueryはSOAPやREST WebサービスからJSONデータを取得して、グリッド、フォーム、レスポンスを待っている間に進行状況を示すコントロールなどをJSONデータで取得することができます。 iOSアプリケーションにREST操作とJSONデータがある場合、Web開発チームはbackbone.jsとJSON-REST操作を使用してバックエンドWebサイトを構築し、iOSからJSON-REST経由で話すのと同じバックエンドとフロントエンドを接続します。 backbone.jsの解析(JSONの読み込み)、collection.toJSON()(JSONへの変換)、モデル同期メソッド(more at http://backbonejs.org/)を使用していることがわかっています。

だから私は残りのものに同意します。あなたがRESTからJSONを取得できるのであれば、ウェブとモバイルアプリケーションで同じメソッドを使用できます。

ここでは、RESTful APIサーバーを正しく実行するための素晴らしいブログ記事です:http://blog.mugunthkumar.com/articles/restful-api-server-doing-it-the-right-way-part-1/

幸運を祈る!

5

サービスとUI層がの場合は、完全にになります。それは、特定のUIを使わずにサービスを設計するということです。そのためには、そのために最大限の再利用ができるからです。私は、RESTfulでWebベースのサービス実装を推奨します。なぜなら、UI統合の柔軟性が非常に高いからです。文字通り、そのようなサービスからデータを消費することができるライブラリの文字列があります。

私は、Rubyの開発者ではないけど、ここではシナトラで単純な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 

帰属:Lightweight Webservices with Sinatra and RESTClient

サービスの実装に使用される実際の言語/プラットフォームは、RESTfulである限りは無関係であり、クライアントが簡単に消費できるデータを返すことに注意してください。 (5)/ CSS/Javascriptを

  • HTML:あなたはそのセットアップを持っていたら、その後、モバイルアプリ対ウェブアプリを設計することは適切な統合ライブラリを選択する事になります。モバイルアプリケーションとWebアプリケーションの両方の実装に使用できるため、より堅牢なオプションの1つです。前述の3つの技術は、新しいWeb 2.0アーキテクチャの中核をなすもので、さまざまなフレームワークが存在します。Angular.js,、Backbone.jsKnockout.js、さらにjQuery MobileまたはBootstrapです。これは現在、WebサービスAPIをWebアプリケーションと統合する最も一般的な方法です。場合によっては、Webサイトの設計だけでなく、iOS UIWebView/Android WebViewなどを使用してモバイルアプリの基礎として使用することもできます。
  • 中間層プロキシ:セキュリティのため、またはXSSの問題を回避するために、ブラウザでAjaxを無効にしたい場合は、このルートに進みます。プロキシは任意の言語(Java、PHP、Ruby、Perl)で記述することができ、Webサービスを消費し、UIの動的HTMLを生成する責任があります。

私の現在のプロジェクトでは、クラスタ化されたJBossサーバー上で動作するJava EE/JAX-RSを使用して多数のRESTFul Webサービスが構築されています。サービスはデフォルトでJSONを返すだけでなく、XMLを生成することができ、そしてからアクセスされていますExt.js AFNetworking/RestKit/NSURLConnectionの組み合わせを使用して

  • iOSアプリケーションを使用して構築された

    まったく同じサービスを使用して

  • Androidアプリケーションは、サービス側で必要な変更なしで、複数の異なるプラットフォーム/ UIので使用されています。あなたが達成しようとしていると私は信じています。

  • 0

    ウェブサービス(JSONの内容)

    • ピュアHTMLベースのアプローチ消費することによって、Webアプリケーションを開発するには、2つの主要なアプローチがあります。このモデルでは、あなたのような任意のサーバー側のスクリプトを必要としないが、 PHP、JSP、ASP.Netなど JSONベースのRESTサービスはJavaScriptで消費され、HTMLコンポーネントにデータがレンダリングされます。 プログラムモデルが普及し、アプリケーションはスムーズになり、デスクトップアプリケーションのように動作します。 この目標を達成するのに役立つフレームワークがたくさんあります。 Angular.js、Ext.js、Backbone.js、Knockout.js、DoJo、Bootstrapなど、これまでの回答で既に説明しました。 このフレームワークでさえ、UIコンポーネントとサーバー側のJSONベースのレストサービスとのデータバインディングをサポートしています。 RESTサービスを使用してUIコンポーネントをレンダリングするためのコードは必要ありません。 このクライアントフレームワークによって自動的に実行されます。例道場

    • HTMLとサーバサイドスクリプト:このアプローチでは、あなたがこの目標を達成するために、このようなRoRの、ジャンゴなどのようなPHP、JSP、JSFやフレームワークなどの任意のサーバーサイドのスクリプト言語を使用する必要があります。 それは他のスクリプト言語とフレームワークを含んでいるので、HTMLとJSに基づくアプローチと比較して学習曲線があります。

    要約すれば、私は最初のアプローチから始めることをお勧めします。

    0

    あなたのapiはすでにRubyの上に構築されているので、Ruby on Railsを検討してください。私はC#/ iOSの開発者であり、最近までRuby on Railsを調べていませんでした。それは、非常に簡単で柔軟な言語です。詳細については、このリンクhttp://railsinstaller.org/をご覧ください。

    これにより、jQueryやその他のJavaScriptベースのライブラリを柔軟に実装できます。

    Sqlite、MySql、PostgreSQlデータベースを操作できます。

    関連する問題