CouchDB 的自定义剩余 api?
Custom rest api's for CouchDB?
我一直在谷歌上搜索,试图找到示例或直接回答我的问题。是否可以 create/extend 我自己的自定义 api couchDB 端点?例如,我可以创建一个 api 调用,如 http://127.0.0.1:5984/database/FillDatabase/... 来用数据填充数据库吗?
如果 couchDB 确实提供了这个功能,那么请向我提供一个 link 可能给一些 tutorial/guide/example 如果可能的话。谢谢
您可能想要_rewrites
feature,它允许任何视图重写传入的URL 该数据库.
但是,对于 root-level APIs,并且为了便于定制,最好在 CouchDB 前面强加一个 Web 引擎(nginx,一个 node.js 服务器, ETC。)。 _rewrites
足够灵活,可以简化特定数据库的 API,但它并非旨在处理所有传入请求,并且很快就会变得笨拙。
您也将仅限于 CouchDB 可以处理的工作 - 例如,FillDatabase
自定义 API 需要符合批量 API.
CouchDB bulk document API 允许您在单个 HTTP 请求中同时创建和更新多个文档
以Angular的HttpClient
class为例,可以这样操作:
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);
我一直在谷歌上搜索,试图找到示例或直接回答我的问题。是否可以 create/extend 我自己的自定义 api couchDB 端点?例如,我可以创建一个 api 调用,如 http://127.0.0.1:5984/database/FillDatabase/... 来用数据填充数据库吗?
如果 couchDB 确实提供了这个功能,那么请向我提供一个 link 可能给一些 tutorial/guide/example 如果可能的话。谢谢
您可能想要_rewrites
feature,它允许任何视图重写传入的URL 该数据库.
但是,对于 root-level APIs,并且为了便于定制,最好在 CouchDB 前面强加一个 Web 引擎(nginx,一个 node.js 服务器, ETC。)。 _rewrites
足够灵活,可以简化特定数据库的 API,但它并非旨在处理所有传入请求,并且很快就会变得笨拙。
您也将仅限于 CouchDB 可以处理的工作 - 例如,FillDatabase
自定义 API 需要符合批量 API.
CouchDB bulk document API 允许您在单个 HTTP 请求中同时创建和更新多个文档
以Angular的HttpClient
class为例,可以这样操作:
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);