Есть ли у MongoDB собственный интерфейс REST? - PullRequest
26 голосов
/ 12 сентября 2011

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

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

При сравнении этого с Mongo, есть ли доступный интерфейс REST? Можно ли делать CRUD исключительно из JavaScript в Mongo?

Спасибо!

Ответы [ 7 ]

37 голосов
/ 12 сентября 2011

Полноценный REST-интерфейс к MongoDB отсутствует, в основном потому, что для эффективности сервер использует собственный двоичный протокол. Вы можете найти несколько оберток REST в официальной документации :

  • RESTHeart (Java 8) - серверная часть REST API данных в экосистеме MongoDB. RESTHeart использует стандартный формат представления, основанный на HAL, с полной поддержкой собственных данных mongodb через представление BSON в строгом режиме. Он предоставляет API для операций CRUD и моделей данных, встроенную аутентификацию и авторизацию и поддерживает CORS. Он прост в настройке и доступен док-контейнер. RESTHeart также является быстрым и легким (~ 7 МБ занимаемой площади и ~ 200 МБ оперативной памяти).

  • Sleepy Mongoose (Python) - это полнофункциональный интерфейс REST для MongoDB, доступный в виде отдельного проекта.

  • MongoDB Rest (Node.js) - это интерфейс alpha REST для MongoDB, который использует собственный драйвер MongoDB Node.

  • Простой интерфейс REST Процесс Mongod включает простой интерфейс REST только для чтения для удобства. Для полных возможностей REST мы рекомендуем использовать внешний инструмент, такой как Sleepy.Mongoose .

7 голосов
/ 05 июня 2012

Другой вариант (бесстыдный плагин) - DrowsyDromedary .

Мы разработали Drowsy из-за разочарования в других опциях REST для Mongo.А именно, мы обнаружили, что:

Сонный мангуст на самом деле не RESTful.Это хакерский HTTP-интерфейс, который не следует соглашениям REST;он не использует стандартные методы REST HTTP, он не использует URL-адреса для правильной идентификации ресурсов ... Мы также нашли варианты ограничения максимального количества результатов (которые по умолчанию ограничены) довольно запутанными.

mongodb-rest предлагает надлежащий REST-интерфейс, но мы обнаружили, что бегать - это боль в заднице.Он будет регулярно умирать и сводит с ума нашего сисадмина (у которого, правда, мало опыта работы с сервисами node.js).

Встроенный REST-интерфейс был бы великолепен, но его читают-только означает, что это в основном бесполезно для наших нужд.

DrowsyDromedary , был разработан для решения многих из вышеуказанных проблем:

  1. Он предоставляет обычный интерфейс REST с поддержкой стандартных HTTP-глаголов (GET,POST, PUT, DELETE, PATCH).
  2. Его довольно легко установить и развернуть (клонировать из github, установить bundler, запустить bundle, а затем rackup, и все готово).Его также можно легко развернуть под Apache или nginx.
5 голосов
/ 01 июля 2015

Редактировать

Python Eve - фантастическое решение для этого. Я нашел его очень простым в использовании и легко настраиваемым.

Eve - это API-интерфейс Python REST с открытым исходным кодом, разработанный для человека. существа. Это позволяет легко создавать и развертывать настраиваемые, полнофункциональные веб-службы RESTful.

Eve работает на 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 выглядит как ответ на этот вопрос.

Из документации легко установить и использовать.

2 голосов
/ 16 сентября 2011

mongodb-rest's fork от ActibeUnits ( github repo ) - один из самых быстрых и многофункциональных интерфейсов отдыха для mongodb, который я видел.

Я очень рекомендую его.

1 голос
/ 10 сентября 2015

RESTHeart - это новая серверная часть API REST данных в экосистеме MongoDB.

Предоставляет API для операций CRUD и модели данных, встроенная аутентификацияи авторизация и поддержка CORS .

Используется стандартный формат представления на основе HAL + json с полной поддержкой собственного формата данных mongodb через представление BSON в строгом режиме.

Простая настройка и доступный докер-контейнер .

RESTHeart - быстрый (см. результат теста производительности ) и легкий (~ 7 МБ занимаемой площади и ~ 200 МБ оперативной памяти).

1 голос
/ 12 сентября 2011

Не совсем. Процесс mongod включает простой интерфейс REST только для чтения для удобства. Для полных возможностей REST вам необходимо использовать внешний инструмент, такой как Sleepy.Mongoose.

0 голосов
/ 12 июля 2014

Нет. Но mongodb-rest движется вперед.

https://github.com/codecapers/mongodb-rest

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...