Я гуглил, пытаясь найти примеры или просто прямой ответ на мой вопрос. Можно ли создать/расширить свои собственные конечные точки API для CouchDB? Например, могу ли я создать вызов API, например http://127.0.0.1:5984/база данных/FillDatabase/... для заполнения базы данных данными?
Если CouchDB действительно предоставляет эту функциональность, пожалуйста, дайте мне ссылку, возможно, на какой-нибудь учебник/руководство/пример, если это возможно. Спасибо.
Вам мая нужен _rewrites
особенность, который позволяет любому представлению переписывать входящий URL-адрес для этой базы данных.
Однако для API корневого уровня и для простоты настройки считается, что лучше навязать веб-движок перед CouchDB (nginx, сервер node.js и т. д.). _rewrites
достаточно гибок, чтобы упростить API для конкретной базы данных, но он не предназначен для обработки всех входящих запросов и может быстро стать громоздким.
Вы также будете ограничены работой, которую может выполнять CouchDB — например, пользовательский API FillDatabase
должен соответствовать массовому API.
API для массовых документов CouchDB позволяет создавать и обновлять несколько документов одновременно в рамках одного 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);