2

私が読んだバックボーンチュートリアルでは、サーバー データベースで CRUD を実行する RESTful アーキテクチャを使用して、ある種のミニ フレームワーク (つまり、Slim) を実装しています。バックボーンのドキュメントには、RESTful api が必要であると記載されています。これは、モデルを最新の状態に保つバックボーンのルートと同期機能によるものだと思います。これは、バックボーンを使用することを選択した大きな側面です。

たとえば、以下の行は偽の URL (ルート) を「addWine」関数 (Slim API 内) にマップします。

$app->post('/wines', 'addWine');

仮定 1 : (PHP) CMS バックエンド (ミニ フレームワークではない) がある場合、2 番目のパラメーター (addWine) を独自の CMS クラス メソッド呼び出しに置き換えるだけで、json オブジェクトを返すことができると仮定します。

仮定 2しかし、バックボーンの状態を失わせずに同じクラス メソッドを html のリンクから直接呼び出すことはできないため、モデル データを同期する (およびブラウザーの履歴を記憶する) ことができません。

仮定 3その場合、バックボーンを満足に保つために、CMS データベースにアクセスするために、Slim API を使用し、(Slim) RESTful CRUD 呼び出しを介してバックボーン URL をルーティングする必要があります。

これらの仮定が正しければ、バックボーンがこれらの HTTP 呼び出しをインターセプトしているように見えます。これにより、RESTful + バックボーンの関係全体がどのように機能するのか疑問に思います。いくつか説明していただけますか?

私の仮定が間違っているとしたら、思った以上に助けが必要です。それを手伝ってもらえますか?

ありがとう

4

2 に答える 2

1

私はあなたの3つの仮定について詳しく話すことはできませんが、最後の質問として、バックボーンはHTTP呼び出しを「インターセプト」しません。他のJavaScriptライブラリがAJAXリクエストを作成するのと同じように、HTTP呼び出しを構築します。

バックボーンは、サーバー側の言語/フレームワークに比較的依存しません。「同期」が呼び出されるたびにBackboneが期待することは次のとおりです。

バックボーンの同期関数は、呼び出されたメソッドに基づいてさまざまなHTTPリクエストタイプを使用します。これらの異なるHTTPリクエストタイプは次のとおりです。

  • 役職
  • 得る
  • 置く
  • 消去

バックボーンの「すぐに使える」機能をサポートするには、フレームワークが上記のすべてをサポートする必要があります。つまり、Backboneを使用するには、アプリケーション内で上記のすべてのルートを指定する必要があります。

もう1つ注意すべき点は、「create」メソッドと「update」メソッドは、リクエストで投稿データを具体的に運ばないことです。代わりに、データのjsonダイジェストを含むコンテンツ本文を送信し、サーバー側がJSONオブジェクトを適切に解析することを期待します。適切に対処します。

于 2012-07-29T06:43:42.223 に答える
1

私は 3 つの仮定すべてに「はい」と言い、@Andy Baird にも同意します。

また、プロジェクトの唯一の問題は、データベースを更新したことをバックボーンに通知する方法であり、フロントエンドでそれ自体を更新する必要があります。私は2つの解決策しか見ることができません:

1) Javascript の使用setInterval()- DB の更新時にフロントエンドをすぐに更新する必要がない場合は、1 分ごとに変更を確認できます。バックボーンは、変更されたもののみを更新して新しいものを追加することを知っていますが、もちろんこれは健康的ではありません1分ごとに繰り返しリクエストを行うアクティブな人が1,000人いる場合のサーバー

2) 使用SocketIOまたは同様のサービス - この方法で、サーバーからバックボーンに、DB への変更の完全なリストまたは単純な「更新してください、新しいものを待っています」のいずれかを送信できます。このディスカッションを確認してください。

于 2012-07-29T23:57:12.163 に答える