CouchDB的自定义Rest API?

时间:2019-06-12 07:57:42

标签: couchdb couchdb-futon

我一直在寻找示例或只是直接回答我的问题。是否可以为沙发数据库创建/扩展我自己的自定义api端点?例如,我可以创建一个像http://127.0.0.1:5984/database/FillDatabase/ ...这样的api调用来用数据填充数据库吗?

如果ouchDB确实提供了此功能,请在可能的情况下为我提供一些教程/指南/示例的链接。谢谢。

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

可能想要_rewrites feature,它允许任何视图重写该数据库的传入URL

但是,对于根级别的API并为了便于自定义,最好在CouchDB之前强加一个Web引擎(nginx,node.js服务器等)。 _rewrites足够灵活,可以简化特定数据库的API,但并非旨在处理所有传入请求,并且很快就会变得笨拙。

您还将仅限于CouchDB可以处理的工作-例如,FillDatabase自定义API需要符合批量API。