我一直在寻找示例或只是直接回答我的问题。是否可以为沙发数据库创建/扩展我自己的自定义api端点?例如,我可以创建一个像http://127.0.0.1:5984/database/FillDatabase/ ...这样的api调用来用数据填充数据库吗?
如果ouchDB确实提供了此功能,请在可能的情况下为我提供一些教程/指南/示例的链接。谢谢。
答案 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。