Есть ли у MongoDB собственный интерфейс REST?
В настоящее время я оцениваю Mongo и CouchDB для хранения точек данных (аналитика).
Во время моего более раннего взаимодействия с CouchDB мне нравился его интерфейс на основе JSONP. Я мог выполнять все операции CRUD с чисто JavaScript.
Просто запустите CouchDB и напишите JavaScript - не требуется компонент на стороне сервера.
Сравнивая это с Mongo, существует ли какой-либо интерфейс REST?
Можно ли сделать CRUD исключительно из javascript в Mongo?
Спасибо!
Ответы
Ответ 1
В MongoDB нет полномасштабного интерфейса REST, главным образом потому, что сервер использует собственный бинарный протокол для повышения эффективности. Вы можете найти несколько оберток REST в официальной документации:
-
RESTHeart (Java 8) - это серверная часть сервера REST API в экосистеме MongoDB. RESTHeart использует стандартный формат представления на основе HAL с полной поддержкой данных mongodb через представление BSON строгого режима. Он предоставляет API для CRUD и операций с моделью данных, встроенную аутентификацию и авторизацию и поддерживает CORS. Его легко настроить, и имеется докер-контейнер. RESTHeart также быстрый и легкий (~ 7 Мб footprint и ~ 200 Мб оперативной памяти).
-
Sleepy Mongoose (Python) - полнофункциональный интерфейс REST для MongoDB, доступный как отдельный проект.
-
MongoDB Rest (Node.js) - это интерфейс alpha REST для MongoDB, который использует собственный драйвер MongoDB Node.
-
Простой интерфейс REST Процесс mongod включает в себя простой интерфейс REST для чтения только для удобства. Для полных возможностей REST мы рекомендуем использовать внешний инструмент, например Sleepy.Mongoose.
Ответ 2
Другой вариант (бесстыдный плагин) - DrowsyDromedary.
Мы разработали Drowsy из разочарования с другими вариантами REST для Mongo. А именно, мы обнаружили, что:
Sleepy Mongoose на самом деле не RESTful. Это хакерский HTTP-интерфейс, который не соответствует соглашениям REST; он не использует стандартные методы REST HTTP, он не использует URL-адреса для правильной идентификации ресурсов... Мы также обнаружили, что параметры ограничения максимального количества результатов (которые ограничены по умолчанию) довольно сбивают с толку.
mongodb-rest предлагает правильный интерфейс REST, но мы обнаружили, что это боль в заднице для запуска. Он будет умирать регулярно, и заставил нашего сисадмина безумным (у которого, по общему признанию, мало опыта работы с сервисами node.js).
встроенный REST-интерфейс был бы отличным, но он был доступен только для чтения, потому что он в основном бесполезен для наших нужд.
DrowsyDromedary, был разработан для решения многих из вышеперечисленных проблем:
- Он предоставляет обычный интерфейс REST с поддержкой стандартных HTTP-глаголов (GET, POST, PUT, DELETE, PATCH).
- Он довольно прост в установке и развертывании (клон из github, install bundler, run
bundle
, а затем rackup
, и вы работаете). Его также можно легко развернуть под Apache или nginx.
Ответ 3
Edit
Python Eve - это фантастическое решение для этого. Я нашел его очень простым в использовании и настраиваемым.
Eve - это открытая среда Python REST API, разработанная для человека существа. Это позволяет легко создавать и развертывать настраиваемые, полнофункциональные веб-службы RESTful.
Ева работает от Flask, Redis, Cerberus, Events и предлагает поддержку как для сторонних серверов MongoDB, так и для SQL [*].
Кодовая база тщательно протестирована под Python 2.6, 2.7, 3.3, 3.4 и PyPy.
Так же легко начать, как:
from eve import Eve
app = Eve()
app.run()
и использовать как
$ curl -i http://example.com/people
HTTP/1.1 200 OK
Схемы конечных точек REST легко определяются в файле настроек.
Оригинал
Я еще не использовал его, но RESTHeart выглядит как ответ на этот вопрос.
Из документации легко его настроить и использовать.
Ответ 4
mongodb-restk fork by ActibeUnits (github repo) - один из самых быстрых и функциональных интерфейсов для отдыха с mongodb, которые я видел.
Я бы очень рекомендовал его.
Ответ 5
Не совсем. Процесс mongod включает простой интерфейс REST для чтения для удобства. Для полных возможностей REST вам необходимо использовать внешний инструмент, такой как Sleepy.Mongoose.
Ответ 6
RESTHeart - это новая серверная часть сервера REST API экосистемы MongoDB.
Он предоставляет API для CRUD и операций с моделью данных, встроенную аутентификацию и авторизацию и поддерживает CORS.
Он использует стандартный формат представления на основе HAL + json с полной поддержкой собственного формата данных mongodb через представление BSON строгого режима.
Легко setup и контейнер докеров доступен.
RESTHeart быстро (см. результат теста производительности) и легкий (~ 7 Мб занимаемой площади и ~ 200 Мб оперативной памяти).
Ответ 7
Нет. Но mongodb-rest продвигается вперед.
https://github.com/codecapers/mongodb-rest