2010-08-08 3 views
3

Я ищу тонкий слой поверх обработки HTTP-запросов, которые могут легко выполнять маршрутизацию на разные серверы, основанные на глаголе uri/rest/фактическом местоположении службы/.... Этот слой также должен обрабатывать кодирование во все запрошенный формат (xml/json/возвращающие двоичные данные/и т. д.).Универсальный интерфейс REST - он существует?

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

Так что в основном это был настраиваемый диспетчер запросов с некоторой магией сверху. Что-то вроде этого существует как отдельное приложение сейчас?

Редактировать: Почти забыл - было бы здорово, если бы оно было написано на PHP ... но если что-то еще соответствует описанию, я бы тоже посмотрел.

+0

+1 Я искал что-то похожее в PHP, но так и не получил 100% соответствия: http: // stackoverflow.com/questions/1967991/web-service-construction-toolkit-wrapper-for-php Заинтересованы в том, что-нибудь придумает. –

+0

Я посмотрел на Cake, Simfony, CodeIgniter и другие библиотеки PHP, прежде чем я начал писать свои собственные. Все это слишком сильно фокусируется на генерации кода и сопоставлении объектов с записью, а запрос маршрутизации/диспетчеризации не так гибок, насколько мне нужно. Единственное требование, которое я не мог реализовать в каких-либо рамках, заключалось в том, что веб-метод JSON/XML также может быть вызван через PHP без необходимости выполнять собственный HTTP-запрос. Мне было бы интересно, что вы найдете. – m1tk4

ответ

2

Не знаю о PHP, но если Java и/или Python являются приемлемыми для вас параметрами, вы должны взглянуть на RESTx, который был разработан для простого и быстрого создания служб RESTful. RESTx является полностью открытым исходным кодом, лицензия GPLv3 лицензирована.

Я согласен с тем, что многие фреймворки связаны с созданием и отображением объектов, что часто может быть очень раздражающим и мешать. Однако RESTx касается данных, автоматического преобразования типов контента и т. Д. С помощью RESTx вы можете создавать собственные компоненты в Java или Python. Эти компоненты могут позаботиться о доступе к базам данных, пользовательским API, устаревшим данным, облачным службам и т. Д. RESTx анализирует код и автоматически создает самодокументированный, обнаруживаемый, RESTful API. Это все ссылки, за которыми вы можете следовать. Посмотрите, как take a tour of the server with a web browser.

Ключ в том, что вы можете устанавливать параметры POST для тех компонентов, которые затем сохраняются и доступны под новым URI. Вы получаете доступ к URI, параметры получаются к компоненту, и вы возвращаете результат. Таким образом, вы можете быстро создавать новые веб-сервисы и ресурсы RESTful. Вы можете легко получить доступ к другим ресурсам из кода своего компонента и не вызвать дополнительный HTTP-запрос.

Я ведущий разработчик RESTx, поэтому, если у вас есть какие-либо вопросы по этому поводу, пожалуйста, свяжитесь со мной на форумах (ссылки на них находятся на нашем веб-сайте).

+0

Это действительно интересно ... Я немного обеспокоен тем, что это работает самостоятельно, не подключается к веб-серверу, но в остальном это выглядит круто :) – viraptor

1

Zed Shaw of Mongrel слава пытается сделать именно это. Он создает Mongrel2 (все еще находится в разработке), по существу универсальный интерфейс для веб-приложений. Он позволяет подключать любую программу, которая может отправлять и получать сообщения 0MQ или HTTP, такие как обратный прокси.

Он также использует надежную конфигурационную файловую систему: SQLite. Больше не нужно возиться с конфигурационными файлами Apache со странным синтаксисом.

Это написано на языке C, поэтому его можно не так просто развернуть как язык, такой как PHP, но он, конечно, очень хорошо масштабируется.

Если вас не устраивает Mongrel2, относительно легко свернуть его. Я использовал nodejitsu node-http-proxy для одного из моих собственных проектов. Это просто и быстро. Кроме того, вы можете написать свои правила маршрутизации, используя обычные старые операторы if.

Я новичок в StackOverflow, поэтому он не позволит мне встроить более одной гиперссылки, ха-ха.

Смежные вопросы