2010-07-15 38 views
2

如果我需要跟蹤標識在瀏覽器中顯示和修改的資源的密鑰或標記,那麼使用的一些編程模式是什麼?推薦的編程模式用於在服務器和客戶端之間傳遞標識符/密鑰?

例如,如果我顯示一個電影列表和連接ajax調用用戶檢出或檢查這些電影,我假設我會嵌入標識符在html中,然後將傳回到服務器。

使用數據庫密鑰是不好的做法嗎?在hrefs中公開標識符是不好的做法嗎?

回答

1

我不認爲一個不良的做法是向客戶端公開資源標識符。這樣做可能會在沒有任何原因的情況下過度複雜您的系統。如果數據庫密鑰實際上是您的實體密鑰,則可以透明地使用它。

我記得在客戶端顯示和編輯數據的唯一模式是DTO。

關於HREF和您的標識符,REST架構甚至會建議您這樣做。這是一種常見的做法; )

希望它可以幫助你。

1

首先,我建議使用URI來識別東西。它是網絡工作的核心。

暴露你的數據庫ID的客戶端是不是太糟糕,但你應該考慮:

  • 的客戶端了解數據庫ID,並用它們做的東西被引入耦合的微妙形式。客戶對這些ID的期望越多(例如它們是唯一的),就會有更多的耦合。
  • 客戶是否需要知道這些項目有數據庫ID?也許這可以揭露ID埋在一個URI。客戶沒有商業知識URIs來判斷問題,所以你並沒有嚴格暴露它。
  • 如果客戶端需要數據庫ID,那麼可能僅僅是作爲顯示標識符?然後,您可以將數據庫ID嵌入到通過網絡傳輸的數據中,但將其標記爲可以理解該ID應該僅用於向用戶顯示標識符,以防他們擁有既得利益(因爲ID在別處泄漏)。

從URI中刪除數據庫ID表明有另一個唯一標識符,它不是某個數據庫中的主鍵。

考慮如何Twitter自己的Twitter帳戶有一個list of the teamhttp://twitter.com/twitter/team精心設計的URI暴露很少,所以他們可以改變他們的整個實現,而沒有URI是一個問題。推特上的推文有一些看起來像主鍵http://twitter.com/meangrape/status/18622784109,但誰知道。

相關問題