我有一个服务器端 Web 应用程序,顶部有一个 RESTful Web API,还有一个与之对话的客户端 Web 应用程序。如果服务器(或互联网)不可用,我想在 webapp 中实现离线存储和功能。在客户端实现 PouchDB 是否可行,并让它与我的 restful web 服务而不是 CouchDB 数据库同步? Web 服务需要遵守哪些标准才能与 couchdb/pouchdb 兼容?如果有更好的方法(如果可以的话,我不想将后端从 postgresql/python 切换到 couchdb),是否有人对此有任何示例或建议如何以不同的方式进行操作?
最佳答案
Is it feasible to implement PouchDB on the client side, and have it sync with my restful webservice instead of a CouchDB database?
可能不是。但这取决于您对“可行”的定义。
What standards does the webservice need to adhere to to be compatible with couchdb/pouchdb?
它需要实现CouchDB Replication protocol .
Does anyone have any examples about this or suggestions on how to do it differently if there is a better way?
您有两个选择,它们实际上归结为同一件事:
底线是:您需要一个客户端和服务器都可以使用的复制协议(protocol)。这不是一件容易的事。复制很难。
PouchDB + CouchDB 为您解决了这个难题,但它是有代价的——它只复制 JSON 数据。当然,您可以将其他数据硬塞到 JSON 文档中,但随后您又要编写一个新协议(protocol)。
正如您在评论中建议的那样,您可以将 PouchDB 仅用于本地存储,并进行自己的复制。当然,那很好。虽然如果你不使用 PouchDB 的复制,它可能不是最适合你的本地存储解决方案(但它仍然是一个很好的解决方案)。
关于web-services - 使用 PouchDB 作为常规 RESTful Web 服务的离线客户端临时存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43883528/