Есть ли эквивалент ASP.NET Web API в мире Rails?

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

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

UPDATE

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

Ответ 1

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

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

Итак, из того, что я могу сказать, Rails поддерживает большинство вещей, для которых был создан Web API. Фактически в Rails большая часть этого материала навязывается вам до тех пор, пока вы не будете достаточно информированы, чтобы иметь возможность изменить его (если предположить, что вы знаете, что лучше, чем на самом деле).

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

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

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

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

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

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

Или все это просто умная уловка, чтобы получить как можно больше "Капитальных писем" в названии.

Ответ 2

Взгляните на grape. Это чистая инфраструктура HTTP API "Rest" в рубине.

Ответ 3

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

Ответ 4

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

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

Ответ 5

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

Наконец,

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

Ответ 6

Да. Это называлось Грайлом. Он использует spring. Для него доступно множество плагинов, что делает создание webapps легким. Подробнее об этом здесь.