Подтвердить что ты не робот

Есть ли у MongoDB собственный интерфейс REST?

В настоящее время я оцениваю Mongo и CouchDB для хранения точек данных (аналитика).

Во время моего более раннего взаимодействия с CouchDB мне нравился его интерфейс на основе JSONP. Я мог выполнять все операции CRUD с чисто JavaScript. Просто запустите CouchDB и напишите JavaScript - не требуется компонент на стороне сервера.

Сравнивая это с Mongo, существует ли какой-либо интерфейс REST? Можно ли сделать CRUD исключительно из javascript в Mongo?

Спасибо!

4b9b3361

Ответ 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 Мб оперативной памяти).