我应该从哪里开始制作基于.NET框架的RESTful Web服务?

时间:2011-11-29 14:56:03

标签: c# .net rest

我正在创建一个iOS应用程序,我需要通过Web服务连接到数据库。我只知道使用RESTful Web服务的基本知识,我之前从未编写过自己的知识,并且想知道您是否可以就如何编写自己的RESTful Web服务向我提出任何建议。

在我的iOS程序中,我将向Web服务发送一个部件号,然后Web服务将需要返回部件上的颜色和大小信息。我不确定XML是最好的格式还是更好的东西?

我想我的问题有两个:

  1. 这是我应该使用RESTful Web服务吗?
  2. 我在哪里可以找到有关创建基于.NET的RESTful Web服务的教程?

6 个答案:

答案 0 :(得分:6)

您可以使用WCF创建RESTful服务,您可以使用Nancy:

我建议使用json作为数据格式,请参阅此处的一些优秀链接:iPhone/iOS JSON parsing tutorial

在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);
    }
}

或者像这样的nancy http://www.nancyfx.org/

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

但在此之前,请听@PeterKelly,因为他是对的

答案 1 :(得分:5)

我的建议是使用ASP.NET MVC3实现这一点 - 因为这提供了一个很好的控制器 - 动作范例,非常适合实现REST服务。你可以使用WCF,我相信它会正常工作,但从个人经验来看,我发现MVC3非常容易用来为iOS客户端编写REST后端。

我建议使用JSON而不是XML,主要是因为它比XML更简洁,但是如果您稍后决定为数据库实现Web前端,它还有其他优点,因为Javascript对JSON有很好的支持。

iOS有许多JSON库,包括SBJSONYAJL

还有一个备受好评的iOS REST实现框架称为RestKit

关于使用MVC famework实现REST的教程,this might be one to look at

答案 2 :(得分:3)

看到你对REST的经验不多,我首先要了解这个概念。在继续设计服务之前,必须从根本上了解它是什么(它不仅仅是漂亮的URL)。

  1. 我首先阅读Roy Fielding的论文Chapter 5(其中REST起源的地方 - 如果你愿意,请阅读整篇论文)。
  2. 然后我会转到优秀的RESTful web services
  3. 最后,我会读到RESTful .NET
  4. 如果你给自己2天的时间,你可以阅读,理解和消化所有这些资源没问题。

    您可能最终会使用WCF - 您可以从here

    获取REST入门套件

答案 3 :(得分:1)

你几乎可以使用任何东西。

如果这是您真正唯一的要求,那么只需使用ASP.NET“通用处理程序”,从请求查询参数中提取信息并将JSON / XML写入响应即可。

但如果你希望将来的事情变得更加复杂,你会想要使用某种类似“Bas B”和“iandotkelly”推荐的框架。

答案 4 :(得分:0)

使用WCF Data Services。这支持XML和json(json更有效)。

Entity Framework一起使用此开发时间最少。

答案 5 :(得分:0)

WCF数据服务将在此为您提供帮助。

查看This beginners guide to WCF