2016-09-19 2 views
1

前提: この質問は、これが正しいアプローチですか?むしろ「どうすればいい?」JSONをRESTの結果からテンプレート化する

状況: thisチュートリアルの後にCherryPy RESTアプリケーションを作成しました。データはjsonモジュールを使用して返され、簡単なjson.dumpsです。この例は動作します。私はデータを持つHTMLテーブルを作成するために使用したいmakoテンプレートを持っています。ここでも、テンプレート自体が機能します。

質問:私の頭の中で、それはこのように動作します:

  1. ユーザーがURL
  2. を要求REST APIは結果
  3. でJSONを作成したmakoテンプレートを生成結果
  4. がHTMLをユーザー

私に返され与えられたHTML JSONをクライアントに返す必要があります。これは何らかの方法で(jQueryやその他のクライアントサイド言語を使用して)レンダリングする必要があります。これは適切なアプローチではありません。代わりに、makoテンプレートはサーバー側で動作し、それが私が立ち往生した場所です。

アドバイスをありますか?

+1

自分自身に質問してください。なぜRESTを実装するのですか?それはマイクロサービスアーキテクチャですか?はいの場合、テンプレートからフロントエンドを生成しているアプリケーションがAPIにJSON形式のHTTP経由でコンテキストデータを要求しているのが普通です。そうでない場合は、すべてのパラメータをレンダラーに渡すだけです。 – webKnjaZ

答えて

0

これを解決するためにRESTは必要ありませんが、これは通常のWebアプリケーションです。ただ、これはRESTサービスでどのように動作するかをお見せするために:

  • ユーザは、クライアントは、クライアントがハイパーリンクを探しexample.com/api/v1メインページを取得する
  • を要求
  • サービスに some-automated-stuffを行うにはRESTクライアントを要求しますメインページに
  • クライアントは、ハイパーリンクとはRESTのAPI
  • CからのJSONの結果を得ることになるrelation=some-automated-stuff
  • でハイパーリンクを検索しますlientはマコテンプレートを使用し、その結果
  • はHTMLが一般的なクライアントは、サービスによって登録された、ユニークなAPIを持っているサードパーティのサーバー側のアプリケーションであり、ユーザー

に返される特定のHTMLを生成しますキー。ユーザーは、APIキーへのアクセス許可を与えて、クライアントが自分のアカウントでsome-automated-stuffを行うことを許可します。例えば、サービスはFacebookのAPIになることができ、クライアントはZyngaによって開発されたアプリケーションになることができます。ファームヴィル。あなたのファームに100,000作物を収穫したばかりのニュースフィードにクライアントが投稿できるようにすると、Facebook APIにリクエストが送信され、ニュースフィードに自動メッセージが表示されます。

c。必要に応じて第一党のAJAXやサーバサイドのクライアントを書くことができますが、サードパーティのクライアントをサポートしたくない場合は、RESTサービスを開発するのはあまり意味がありません。 Ofc。あなたのクライアントは通常のアプリケーションほど簡単ではありませんので、それが重要であれば価値があります。

関連する問題