2012-05-01 7 views
3

私は動的コンテンツを提供するウェブサイトを構築しています。 RESTを介したサーバー/ブラウザー間のすべての通信。 PostgreSQLはデータストアとして使用されます。残りのHTML /テキストとしてフルWebページを渡す必要がありますか?

私の質問は、ダイナミックコンテンツと一緒にhtmlをオンザフライで構築する必要がある場合、どのGETリクエストでもあります。例

@GET 
@Produces(MediaType.TEXT_HTML) 
public String getAllEmployee() { 
    // employees fetched from the data base 
    String html = "<HTML></head> blah blah"; 
    return html; 
} 

私の質問は、HTMLがその場で構築され、そしてブラウザに送られるべきであるように

。 また、linkedinのような大きなウェブサイトはどのように機能しますか?彼らはその場でhtmlページを生成し、そのページを送り返しますか?

私が考えることができるもう一つの方法は、AJAX要求を埋め込んだベアボーンhtmlを送信することです。そして、ajaxリクエストはサーバーから動的コンテンツを取得します。

答えて

8

RESTの主な利点の1つは、アクセスされている基礎となるリソースからの表現(エンコード)の分離です。

クライアントがAcceptヘッダーを介してプリファレンスとして要求した場合、HTMLを返すのはまったく問題ありません。クライアントがJSONやXMLを好むことを示している場合や、他のスーパーエンコーディングが来年に夢中になった場合、サーバーは代わりにその形式を返すことができ、URIスキームは1ビットも変更されません。

最も重要なことは、REST APIを永遠に1つのエンコード形式に結び付けないことです。 HTTPコンテンツネゴシエーションがAPIサービスプロバイダとしてあなたに提供する優れた柔軟性を利用して、APIクライアントにニーズに最も適したフォーマットを選択して選択できるようにします。

1

RESTサービスでは、通常、XMLやJSONなどのインターチェンジ形式でデータが返されます。クライアントコードは結果をHTMLに解釈し、必要に応じてページに挿入します。すでに

  1. は、それはあなたのAPIクライアントがデータで何ができるかを制限するので望ましくないかもしれない準備送るHTML
  2. 一般的に望ましくないプレゼンテーション形式を決定する必要がありますあなたのサービス層は、
  3. は、あなたのサービスがあることも意味し必要以上にワイヤーでビットを返すので、ビジー状態のサイトでは大きな違いが生じます。

実際のHTMLを生成するために、JSONオブジェクトを送り返し、クライアントコードで何らかの種類のテンプレート(これを行う方法がたくさんあります)に対してクライアントコードを適用することをお勧めします。

+0

OK、私のウェブサイトを立ち上げて実行していると仮定すると、ブラウザからurlを取得すれば、リクエストを出してから、HTML(動的)ページ全体を送信する必要がありますか?私はJSONを使用していた場合、私は素敵な骨htmlを(JavaScriptを使って動的コンテンツを要求し、JSONを取得してページにレンダリングして)返信すると思います。それはどうすればいいのでしょうか? –

関連する問題