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

Где начать веб-службу REST в С# или ASP.Net

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

Мой вопрос в том, с чего мне начать? Я видел Microsoft ADO.Net Data Services. Не уверен, что это хорошее место для начала? Доступны ли какие-либо примеры?

4b9b3361

Ответ 2

Вы также можете проверить servicestack.net Открытый, кросс-платформенный, высокопроизводительный веб-службы, которая позволяет вам разрабатывать веб-службы с использованием кодового, строго типизированного DTO, который автоматически (без какой-либо конфигурации) будет сразу доступен на разных конечных точках из коробки (например, XML, JSON, JSV, SOAP 1.1/1.2).

REST, RPC и SOAP из коробки

Кроме того, ваши же веб-сервисы также могут быть доступны через любой URL-адрес ReST-ful по вашему выбору, где предпочтительный формат сериализации может быть указан вашим клиентом REST i.e.

  • Использование заголовка HTTP Принять:
  • Добавление предпочтительного формата в строку запроса, например. ? format = xml

См. Ничего, кроме REST! ​​ пример веб-сервиса для разработки полного REST-полноценного приложения Ajax CRUD с только 1 страницей jQuery и 1 страница С#.

Хорошим местом для начала является пример Hello World, чтобы узнать, как легко добавить веб-службы ServiceStack в любой существующее веб-приложение ASP.NET.

Производительность

Для обеспечения производительности ServiceStack делает отличный сервер Ajax, поскольку он поставляется в комплекте с самым быстрым JSON Serializer для .NET ( > 3 раза быстрее, чем другие JSON-сериализаторы).

Оформить заказ это живое приложение Ajax по вкусу (демо-версия, размещенная на Linux/Nginx/MONO).

Простой пример Northwind

ServiceStack также упрощает создание веб-сервисов с твёрдым типом, которые содержат только код, который вам нужен, чтобы вернуть Список клиентских POCOs:

    public class CustomersService : RestServiceBase<Customers>
    {
            public IDbConnectionFactory DbFactory { get; set; }

            public override object OnGet(Customers request)
            {
              return new CustomersResponse { Customers = DbFactory.Exec(dbCmd =>
                    dbCmd.Select<Customer>()) 
            };
    }

Без другой конфигурации вы можете теперь вызывать вышеуказанный веб-сервис REST, полностью возвращающий все:

Доступ к веб-службам на клиенте

Вы можете вызвать вышеупомянутый веб-сервис, повторно используя те же DTO, что и ваши веб-службы, с помощью (т.е. не требуется генерация кода), используя ваш предпочтительный общий ServiceClient (например, Json, Xml и т.д.). Это позволяет вам называть ваши веб-сервисы с помощью строго типизированного API всего за 1 строку кода:

Пример синхронизации С#

IServiceClient client = new JsonServiceClient("http://host/service");
var customers = client.Send<CustomersResponse>(new Customers());

И поскольку ваши веб-сервисы также являются службами REST, он работает без проблем с JavaScript-серверами ajax, например:

Использование jQuery

$.getJSON("http://host/service", function(r) { alert(r.Customers.length); });

Ответ 3

ASP.NET Web API теперь является основой Microsoft для создания служб RESTful.

http://www.asp.net/web-api

Ответ 4

Если вы новичок в REST в мире .net, начните с OpenRasta. Другие решения Microsoft могут выполнять REST, если вы много работаете над этим, но они проведут вас по маршруту, где вы, скорее всего, окажетесь с POD (Обычные старые данные) через HTTP. Это совсем не то, что REST. Если это все, что вам нужно, тогда это тоже круто, но это не REST.

Ответ 5

  • Если вы идете в WCF, стартовый комплект WCF REST, упомянутый в JP, - отличное место для запуска.
  • Omar Al Zabir представляет собой довольно хороший пример использования ASP.NET MVC для предоставления услуг RESTful, которые свободно говорят как в XML, так и в JSON
  • Вы также можете воспользоваться предложенным маршрутом данных ADO.NET. Эти службы создаются поверх стека WCF.

Я никогда не сталкивался с каким-либо действительно хорошим руководством относительно того, как выбирать между этими параметрами. В ASP.NET MVC вы берете на себя большую часть расходов на водопровод, но также обладаете максимальным контролем. Straight RESTful WCF - это счастливая промежуточная площадка, хотя WCF стремится к тому, чтобы все было сделано. Службы ADO.NET Data Services являются довольно волшебными с недостатком полной покупки в данном подходе к созданию этих сервисов и большей гибкостью.

Есть несколько хороших книг, которые вы можете прочитать по теме RESTful-сервисов с .NET. Оба O'Reilly и Microsoft Press недавно выпустили книги по этой теме. Возможно, самым важным советом, который я могу вам предложить, является потребление и понимание нескольких открытых сервисов RESTful (например, Twitter, Amazon, Flickr), чтобы понять дизайнерские решения, которые входили в создание сервисов. Предоставление пользователей, механизм аутентификации и поддерживаемые типы контента (например, JSON, XML, RSS/ATOM) - вот некоторые из решений, которые вы можете наблюдать в действии, чтобы помочь вам на пути к созданию вашего API-сервисов.