Есть ли в мире Rails эквивалент ASP.NET Web API? - PullRequest
11 голосов
/ 24 марта 2012

Или Rails сам по себе просто хорош для разработки API?

Кажется, что типы проектов ASP.NET Web API имеют некоторую историю, переплетенную с WCF (как подробно описано в этой публикациипример), поэтому, возможно, это не применимо к Rails.

ОБНОВЛЕНИЕ

Для пояснения, у Microsoft есть платформа ASP.NET MVC.Недавно они выпустили фреймворк под названием ASP.NET Web API .ASP.NET Web API, похоже, имеет сходство с ASP.NET MVC, но специализирован и урезан для веб-сервисов RESTful.Есть ли эквивалент в пространстве Ruby / Rails?

Ответы [ 6 ]

11 голосов
/ 24 марта 2012

Итак, ответ Да на оба вопроса.Rails имеет эквивалент, и его Rails.

ASP.NET Web API выглядит так, как будто его сердце - просто RESTful маршрутизатор с согласованием типов.Я мог бы быть полностью неосновным здесь, но из обучающих программ, которые я видел, это то, на что это было похоже мне.

Так что да, из того, что я могу сказать , Railsподдерживает большинство вещей, для которых Web API был создан.На самом деле в Rails большая часть этого материала навязывается вам до тех пор, пока вы не станете достаточно информированными, чтобы иметь возможность его изменить (предполагая, что к этому моменту вы будете знать лучше, чем на самом деле).Но, насколько Web API функциональность.Это действительно происходит из-за способности поддерживать HTTP-глаголы (GET, POST, PUT, DELETE), которые Rails поддерживает.

Но источником путаницы может быть то, что в Rails RESTful API фактически является самим приложением.Это означает, что вам не нужно реализовывать какие-либо другие библиотеки, он просто построен таким образом.

Вот краткий пример того, что я имею в виду
Когда вы нажмете /users/1, вы получите данные, связанные с этим пользователем.в зависимости от формата, который вы просили.Поэтому, если вы запрашиваете JSON , контроллер возвращает JSON , HTML , вы получаете HTML , XML , вы получаете XML и т. Д. (Если указанный формат реализован для этого ресурса)

Хороший обзор того, о чем я говорю, находится в следующих двух разделах:
Руководства по Rails:: Контроллер: рендеринг данных xml и json
Руководства по Rails :: Маршрутизация: ресурсы в Интернете

Таким образом, вы можете создать веб-сайт, API или оба вПриложение Rails, и все они будут запускаться одинаково.

Но из моих ограниченных знаний по этому вопросу, я бы сказал, что программа ASP.NET MVC with ASP.NET Web API на самом деле многобольше похоже на Rails Program, чем на обычные ASP.NET MVC программы, которые были до них.

Или это всего лишь умная уловка, чтобы получить как можно большеЗаглавные буквы в названии, насколько это возможно по-человечески.

3 голосов
/ 24 марта 2012

Взгляните на виноград .Это чистый HTTP-каркас "Rest" в ruby.

1 голос
/ 24 марта 2012

WSO2 выглядит как универсальная структура веб-сервисов (в отличие от MVC, как Rails), я не могу ручаться за это, но, похоже, это скорее сервисная структура в стилеWCF Web API (сервис в общем смысле, а не только SOAP).

0 голосов
/ 05 июля 2012

Хорошо, это не прямой ответ на ваш вопрос, однако, похоже, есть некоторая путаница ... Microsoft ASP.NET Web API - это, в частности, продукт, предлагаемый с ASP.NET MVC 4+.Это RESTful рамки.Как это по сравнению с RoR?Я не знаю, никогда не пытался установить RoR на Windows.Как и во всем остальном, опыт меняется ... Требования меняются.Также постарайтесь думать с нашей стороны о языке, конструкции, контексте и структуре.Это лучше для разработки API?Если вы используете Linux / Unix, ответ, вероятно, да.Если вы на сервере Windows, вопрос немного сложнее.

Наконец,

Запись в веб-API ASP.NET будет иметь 0% общего с WCF.Возможно, он реализован как таковой под прикрытием, но веб-API ASP.NET - это (из того, что я видел и сделал с ним) строго API, связанный с HTTP, а не TCP / Binary / Piped / etc ... как WCF.Если вы спросите

0 голосов
/ 24 марта 2012

Трудно понять, что вы подразумеваете под "API" ... Rails и ASP используются для разработки веб-сайтов, а WCF - это, по сути, платформа веб-сервисов. ASP и WCF имеют мало общего: приложения ASP обычно используют службы WCF, поскольку все они работают в одном стеке и на одной платформе.

Полагаю, что Rails на стороне Microsoft будет комбинацией ASP.NET MVC, Linq2SQL или EntityFramework и некоторых WCF.

0 голосов
/ 24 марта 2012

Да. Это называется Grails. Это использует весну. Есть множество плагинов для него, и это делает создание веб-приложений на одном дыхании. Подробнее об этом здесь .

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