我最近对CouchDB产生了兴趣,并希望尝试围绕它形成一个小应用程序。
我当前如何邀请我的系统的方式是请求提供两个东西,一个id,一个API密钥和一个格式。 ID是数据库中文档的_id,API Key是另一个具有{“valid”:true / false}属性的文档的_id,格式是他们想要的格式。如果API密钥有效,系统将以请求的格式生成给定id的显示页面。否则它将返回403统计代码。
不幸的是,我找不到从显示页面中提取另一个文档的方法。我刚刚开始使用CouchDB,所以也许这里有一些简单的东西,我很想念。
答案 0 :(得分:4)
使用_show
函数,涉及三个部分:
对于网址格式/db/_design/ddoc/_show/my_show_func/otherdoc
:
_design/ddoc
shows.my_show_func
_id
otherdoc
这些只涉及 两个文件。我能想到的唯一方法就是按照API键设计doc。用户将查询/db/_design/API_KEY/_show/other_doc_id
。 CouchDB很放松。数千个具有相同或相似_show
函数的设计文档没有任何问题。您可以根据需要使用HTTP COPY
方法将基本设计文档克隆到新的API密钥。然后,您可以通过删除设计文档来撤消API密钥。然而,这显然是一种独特的方法,值得再次思考。
最后的考虑是(使用默认的CouchDB,没有反向代理,mod_security等)如果用户可以读取一个文档,他们可以读取整个数据库(例如,从_all_docs
查询。)因此显示功能是软件的便利,但不是安全网关。