【问题标题】:Custom rest api's for CouchDB?CouchDB 的自定义休息 api?
【发布时间】:2019-10-26 16:12:27
【问题描述】:
【问题讨论】:
标签:
couchdb
couchdb-futon
【解决方案1】:
您可能想要_rewrites feature,它允许任何视图为该数据库重写传入的URL。
但是,对于根级别的 API,并且为了便于定制,最好在 CouchDB 前面强加一个 Web 引擎(nginx、node.js 服务器等)。 _rewrites 足够灵活,可以简化特定数据库的 API,但它并不打算处理所有传入请求,并且很快就会变得笨拙。
您还将受限于 CouchDB 可以处理的工作 - 例如,FillDatabase 自定义 API 需要符合批量 API。
【解决方案2】:
CouchDB bulk document API 允许您在单个 HTTP 请求中同时创建和更新多个文档
以 Angular 的 HttpClient 类为例,可以按如下方式完成:
const baseURL = 'http://localhost:5984/';
let httpHeaders = new HttpHeaders();
httpHeaders = httpHeaders.set('Accept', 'application/json');
httpHeaders = httpHeaders.set('Content-type', 'application/json');
httpHeaders = httpHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));
const httpOptions = { headers: httpHeaders, withCredentials: true };
this.httpClient.post<any>(baseURL + database + '/_bulk_docs',
{ docs: myDocuments }, httpOptions);