С чего начать для создания веб-службы RESTful на основе .NET Framework? - PullRequest
6 голосов
/ 29 ноября 2011

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

В моей программе для iOS я буду отправлять номер детали в веб-службу, после чего веб-службе потребуется вернуть информацию о цвете и размере детали.Я не уверен, является ли XML лучшим форматом или есть что-то лучше?

Я думаю, мой вопрос здесь двоякий:

  1. Это то, что я должен делать с RESTfulвеб-служба?
  2. Где найти учебники по созданию веб-службы RESTful на основе .NET?

Ответы [ 6 ]

6 голосов
/ 29 ноября 2011

Вы можете использовать WCF для создания сервисов RESTful, и вы можете использовать Nancy:

Я бы рекомендовал использовать json в качестве формата данных, см. Здесь несколько замечательных ссылок: Учебник по разбору JSON для iPhone / iOS

в wcf вы бы пошли о создании сервиса, подобного этому: см. Здесь для разумного примера: http://blogs.msdn.com/b/kaevans/archive/2008/04/03/creating-restful-services-using-wcf.aspx

[ServiceContract]
public interface IServeStuff
{
    [OperationContract]
    [WebGet(UriTemplate = "/stuff/{id}", 
            ResponseFormat = WebMessageFormat.Json)]
    Stuff GetStuff(string id);
}

public class StuffService : IServeStuff
{
    public Stuff GetStuff(string id)
    {
         return new Stuff(id);
    }
}

Или с Нэнси http://www.nancyfx.org/ вот так:

public MyModule : NancyModule
{
    public MyModule()
    {  
        Get["/stuff/{id}"] = parameters => {
            return new Stuff(parameters.id).AsJson();
        };
    }
}

Но прежде всего послушайте @PeterKelly, потому что он прав

5 голосов
/ 29 ноября 2011

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

Я бы порекомендовал использовать JSON, а не XML, в первую очередь потому, что он более лаконичен, чем XML, но у него есть другие преимущества, если позже вы решите внедрить веб-интерфейс для своей базы данных, поскольку Javascript имеет хорошую поддержку JSON.

Существует несколько библиотек JSON для iOS, включая SBJSON и YAJL

Существует также хорошо продуманный фреймворк для реализаций iOS REST, который называется RestKit .

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

3 голосов
/ 29 ноября 2011

Поскольку у вас мало опыта работы с REST, я бы сначала узнал об этой концепции.Важно понять, что это такое (это не просто красивые URL), прежде чем приступить к разработке вашего сервиса.

  1. Я бы начал с чтения главы 5 диссертации Роя Филдинга (где возник термин REST - прочитайте всю статью, если хотите).
  2. Затем я перейду к превосходным RESTful веб-службам .
  3. Наконец-то я прочитал бы RESTful .NET .

Если бы вы дали себе 2 дня, вы могли бы читать, понимать и усваивать все эти ресурсы без проблем.

Вы, вероятно, в конечном итоге будете использовать WCF - вы можете получить REST Starter Kit с здесь

1 голос
/ 29 ноября 2011

Вы можете в значительной степени использовать все, что угодно.

Если это действительно ваше единственное требование, было бы довольно просто использовать ASP.NET 'Generic Handler', извлечь информацию из параметров запроса запроса инапишите в ответ JSON / XML.

Но если вы ожидаете, что в будущем ситуация станет еще сложнее, вам понадобится какая-то платформа, такая как 'Bas B' и 'iandotkelly'рекомендую.

0 голосов
/ 29 ноября 2011

Службы данных WCF помогут вам здесь.

Проверьте Это руководство для начинающих WCF

0 голосов
/ 29 ноября 2011

Использование Службы данных WCF . Это поддерживает XML и json (json более эффективен).

Используйте это с Entity Framework для наименьшего количества времени разработки.

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