10

私は Web 開発ではなく、ネイティブ モバイル開発にしか詳しくないので、私の素朴さを許してください。

通常、モバイル アプリの API には、API からの POST または GET データを介したリクエストが含まれます。データは JSON として返されます。この例のために、API がモバイルと Web サイトの両方で消費される Sinatra / Ruby を利用した単純なものであると想像してください。

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

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

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

4

8 に答える 8

7

サービス層と UI 層が完全に分離されている場合、費用対効果が最大になります。つまり、特定の UI を念頭に置いてサービスを設計することはありません。そうすることで、サービスを最大限に再利用できるからです。UI 統合の柔軟性が大幅に向上するため、RESTful な Web ベースのサービス実装をお勧めします。現在、そのようなサービスからデータを利用できるライブラリは文字通り多数あります。

私は 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 アプリとモバイル アプリのどちらを設計するかは、適切な統合ライブラリを選択することになります。

  • HTML(5)/CSS/Javascript . モバイル アプリケーションと Web アプリケーションの両方の実装に使用できるため、より堅牢なオプションの 1 つです。上記の 3 つの技術は、新しい Web 2.0 アーキテクチャのコアを形成し、Angular.jsExt.jsBackbone.jsKnockout.js、さらにはjQuery MobileまたはBootstrapなど、さまざまなフレームワークが存在します。これは、現在、Web サービス API を Web アプリケーションと統合する最も一般的な方法です。場合によっては、Web サイトを設計するだけで済み、それをモバイル アプリのベースとして使用することもできます (たとえば、iOS UIWebView/Android WebView を介して)。
  • Middle Tier Proxy : ブラウザーで Ajax を無効にする場合 (セキュリティ上の理由、または XSS の問題を回避するため) には、このルートを使用します。プロキシは任意の言語 (Java、PHP、Ruby、Perl) で作成でき、Web サービスを使用して UI 用の動的 HTML を生成します。

実際の例として、私の現在のプロジェクトには、クラスター化された JBoss サーバーで実行される Java EE/JAX-RS を使用して構築された多数の RESTFul Web サービスがあります。サービスはデフォルトで JSON を返しますが、XML を生成することもでき、以下からアクセスできます。

  • Ext.js を使用して構築されたさまざまな内部および外部 Web アプリケーション
  • AFNetworking/RestKit/NSURLConnection の組み合わせを使用する iOS アプリケーション
  • Jersey REST Clientを使用したAndroidアプリケーション

まったく同じサービスが複数の異なるプラットフォーム/UI で使用され、サービス側で変更する必要はありません。それがあなたが達成しようとしていると私が信じていることです。

于 2013-04-21T09:10:32.790 に答える
2

私の経験では、マルチプラットフォーム アプリを開発するときは、コードとアルゴリズムをできるだけ再利用できるようにします。そのため、(たとえば PHP と MySQL を使用して) API を準備するときは、すべてのプラットフォームで同じデータ取得形式を使用します。モバイル プロジェクトと Web プロジェクトの両方で、JSON または XML を介してデータを読み書きできるので、問題はないと思います。

ただし、API ですべてのデータベース接続を一元化すると、接続数 (およびエラー) が大幅に減少します。

Foursquare で実行例を見ることができます。

于 2013-04-13T10:28:32.470 に答える
2

AngularJS は、単一ページ タイプのアプリで非常にうまく機能し、Web サービスを利用します。jQuery ajax 呼び出し (imo) よりも学習曲線がかなり急勾配であるため、ニーズによっては、jQuery でアプリを作成する方が理にかなっている場合があります。

他の JS MVC フレームワーク (knockout、ember.js) には、JSON ソースからのデータの取得に関して同様の機能があるかもしれませんが、私はそれらにあまり詳しくないので、見て判断してください。

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

于 2013-04-16T13:01:00.647 に答える
2

私が理解していることから、あなたは簡単に習得して動的な Web サイトを構築できる軽量の Web 開発フレームワークを探していると思います。

Web フロントエンドが API から JSON データをフェッチするために HTTP GET/POST 要求を作成できる必要があるという要件に基づいています。次のオプションが最適です。

  1. HTML + AJAX (非常に単純な動的 Web サイト用)
  2. PHP + AJAX (より複雑な Web サイト用)

GET/POST リクエストは、jQuery などの JS ライブラリを使用して AJAX 呼び出しとして行われます。さらに、jQuery は JSON 応答を解析する関数を提供します。

したがって、基本的には、非常に人気があり使いやすく、背後に巨大なコミュニティ サポートがある PHP と jQuery を学ぶ必要があります。

于 2013-04-15T19:49:40.720 に答える
0

Webサービス(JSONコンテンツ)を利用してWebアプリケーションを開発するには、大きく分けて2つのアプローチがあります

  • 純粋な HTML ベースのアプローチ: このモデルでは、PHP、JSP、ASP.Net などのサーバー側スクリプトは必要ありません。JSON ベースの REST サービスは JavaScript によって使用され、データが HTML コンポーネントにレンダリングされます。プログラミング モデルはより一般的になり、アプリケーションはスムーズになり、デスクトップ アプリケーションのように動作します。この目標を達成するのに役立つフレームワークはたくさんあります。それらは、Angular.js、Ext.js、Backbone.js、Knockout.js、DoJo、Bootstrap などの以前の回答で既に言及されています。このフレームワークの一部でさえ、UI コンポーネントとサーバー側の JSON ベースのレスト サービスとのデータ バインディングをサポートしています。REST サービスを使用して UI コンポーネントをレンダリングするためのコーディングは必要ありません。これは、このクライアント フレームワークを介して自動的に行われます。道場の例

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

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

于 2013-04-22T08:37:58.717 に答える
0

API はすでに Ruby の上に構築されているため、Ruby on Rails を検討してください。私は C#/iOS 開発者で、最近まで Ruby on Rails を調べたことがありませんでした。これは、使いやすさと柔軟性を備えた優れた言語です。詳細については、このリンクhttp://railsinstaller.org/を参照してください。

jQuery やその他の JavaScript ベースのライブラリも柔軟に実装できます。

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

于 2013-04-22T10:56:34.200 に答える