我有一個服務器端Web應用程序,頂部有一個REST風格的Web API,客戶端Web應用程序與它交談。如果服務器(或互聯網)不可用,我想在webapp中實現離線存儲和功能。在客戶端實現PouchDB是否可行,並使其與我寧靜的Web服務而不是CouchDB數據庫同步? web服務需要遵循什麼標準才能與couchdb/pouchdb兼容?有沒有人有任何關於這個或關於如何以不同的方式做的建議,如果有更好的方法(我寧願不將我的後端從postgresql/python切換到couchdb,如果我可以)?將PouchDB用作常規RESTful web服務的離線客戶端臨時存儲
1
A
回答
1
是否可以在客戶端實現PouchDB,並讓它與我寧靜的webservice而不是CouchDB數據庫同步?
可能不是。但這取決於你對「可行」的定義。
webservice需要遵循什麼標準才能與couchdb/pouchdb兼容?
它需要實現CouchDB Replication protocol。
有沒有人有任何關於這個或關於如何有更好的方式做不同的例子?
你有兩個選擇,這真的可以歸結爲同一件事:
- 可以實現現有的複製協議。
- 您可以編寫自己的複製協議。
底線是:您需要一個複製協議,您的客戶端和服務器都會說話。這不是一件容易的事。複製很難。
PouchDB + CouchDB爲您解決了這個難題,但價格昂貴 - 它只能複製JSON數據。當然,你可以將其他數據轉化爲JSON文檔,但是你又要寫一個新的協議。
正如您在評論中所建議的,您可以使用PouchDB僅用於本地存儲,並進行自己的複製。當然,那很好。雖然如果你不使用PouchDB的複製,它可能不是最適合你的本地存儲解決方案(但它仍然是一個很好的解決方案)。
相關問題
- 1. REstful web服務中的客戶端
- 2. 先寫RESTFul Web服務和客戶端
- 3. WCF Restful Web服務客戶端限制
- 4. 訪問使用RESTful客戶端RESTful Web服務在春季3
- 5. 無法使用的球衣客戶端使用RESTful Web服務
- 6. Jersey客戶端調用RESTful服務
- 7. Groovy Web服務客戶端
- 8. 從客戶端使用Jersey調用RESTFul Web服務問題
- 9. RESTful Web服務調用使用Jersey客戶端2.2版
- 10. Python web服務客戶端
- 11. Soap Web服務客戶端
- 12. 客戶端 - 服務器數據存儲
- 13. 如何分離開發客戶端Web UI和服務器端
- 14. Web服務中的JPos客戶端
- 15. Android客戶端Web服務
- 16. java web服務客戶端超時
- 17. Java Web服務客戶端
- 18. 使用PHP客戶端消費Java RESTFul Web服務
- 19. 是否可以從EJB2客戶端調用Restful Web服務
- 20. Java Web服務客戶端:
- 21. Restful Web服務 - 規範
- 22. WCF Web服務客戶端超時值
- 23. Web服務wcfstorm客戶端
- 24. Web服務 - 客戶端類
- 25. 使用tomcat服務器的Web服務客戶端緩存
- 26. CodeIgniter Web服務客戶端
- 27. Web服務客戶端Java
- 28. java web服務客戶端
- 29. WCF中的單元素數組RESTful JSON Web服務客戶端
- 30. 基於Java的RESTful Web服務客戶端
PouchDB實現基於REST的[CouchDB複製協議](http://docs.couchdb.org/en/2.0.0/replication/protocol.html)。您可能也需要實施它。另請參閱[PouchDB文檔](https://pouchdb.com/guides/#couchbase-couchdb-couch-what)... – Phonolog
感謝您的信息。複製協議看起來不太複雜,但實現起來可能還有很多工作要做。也許一個更好的主意可能是在客戶端只有一個pouchdb本地存儲,而webapp從REST webservice緩存數據並在沒有可用連接的情況下將數據存儲在本地。只要互聯網/服務器恢復在線狀態,它就會將其發送回其餘的web服務。 –