【问题标题】:Custom rest api's for CouchDB?CouchDB 的自定义休息 api?
【发布时间】:2019-10-26 16:12:27
【问题描述】:

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

如果 couchDB 确实提供了这个功能,那么如果可能的话,请给我一个链接,也许是一些教程/指南/示例。谢谢。

【问题讨论】:

    标签: 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);
      

      【讨论】:

        猜你喜欢
        • 2011-07-03
        • 2014-08-28
        • 2012-06-18
        • 2017-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-10
        • 2020-10-03
        相关资源
        最近更新 更多