凡在C#或ASP.Net启动REST Web服务(Where to start REST web s

2019-06-26 10:41发布

我想开始编写一些REST Web服务的方式来提供数据。 我想,当我的REST Web服务是可用的,那么我的一些Web应用程序和控制台应用程序将能够使用REST Web服务作为数据服务来获得,添加,更新和删除数据的数据库。 除此之外,我想补充的认证功能,以识别任何请求。

我的问题是,我应该在哪里开始呢? 我看到微软ADO.Net数据服务 。 不知道这是一个好的开始的地方吗? 是否有任何的例子可用?

Answer 1:

退房在WCF MSDN站点REST和入门套件 。 好文章在这里了。



Answer 2:

您可能还需要检查出servicestack.net一个开源的,跨平台,高性能的Web服务框架,它可以让你使用开发Web服务代码优先,强类型的DTO的,它会自动(无需任何配置)立即可用在各种不同的端点外的现成的(即XML,JSON,JSV,SOAP 1.1 / 1.2)。

REST,RPC和SOAP开箱

此外,也可以通过这里可以通过您的REST客户端,即可以指定首选的序列化格式您选择的任何REST-FUL URL来的同一个Web服务

  • 使用HTTP 接受:
  • 附加的优选格式到查询字符串例如?格式= XML

见没有什么,但休息! 如何开发一个完整的REST-FUL阿贾克斯CRUD应用程序只有1页的jQuery1页的C#Web服务的例子。

一个良好的开端是Hello World示例来看看如何轻松地到任何现有的ASP.NET Web应用程序中添加ServiceStack Web服务。

性能

对于性能的良心,ServiceStack使得它自带的捆绑一个优秀的Ajax服务器最快的JSON序列为.NET (> 3倍比其他JSON序列化更快)。

结帐这个活的Ajax应用程序的味道(托管在Linux / Nginx的/ MONO现场演示)。

简单的例子罗斯文

ServiceStack也可以很容易地创建强类型的摩擦Web服务,其中只有下面的代码是所有你需要返回客户波苏斯的列表:

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

由于没有其他的配置,您现在就可以拨打上面的Web服务的REST完全恢复所有的:

  • XML
  • JSON
  • CSV
  • HTML
  • JSV
  • 肥皂

在客户端访问Web服务

您可以拨打上面的Web服务重复使用使用您的首选通用ServiceClient您的Web服务用的定义相同的DTO(即不需要代码生成)(即JSON,XML等)。 这允许您使用强类型的API只用1行代码来调用您的Web服务:

C#同步实施例

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

而且,由于您的Web服务也REST服务,它使用JavaScript Ajax客户端,如无缝工作:

使用jQuery

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


Answer 3:

的ASP.NET Web API现在是创建RESTful服务的微软架构。

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



Answer 4:

如果你是新的REST在.NET世界然后开始OpenRasta 。 如果你在它努力工作,但他们会引导你失望了HTTP的路线,你将最有可能与POD结束(普通旧数据)其他微软解决方案可以做REST。 这不是什么REST是怎么一回事。 如果这是你想要的,然后这也很酷,但它不是REST。



Answer 5:

  • 如果你打算WCF,WCF的REST入门套件JP称作是一个伟大的地方开始。
  • 奥马尔·Zabir 提供了一个很好的例子使用ASP.NET MVC提供的RESTful服务,这是精通XML和JSON的
  • 你也可以去,你所建议的ADO.NET数据服务的路线。 这些服务都建立在WCF堆栈的顶部。

我从来没有遇到任何真正好的指导无意中发现了如何将这些选项之间进行选择。 在ASP.NET MVC你承担大部分的管道负担,也有最大的控制。 直REST风格的WCF是快乐的中间地带,虽然WCF往往希望有事情做它的方式。 ADO.NET数据服务与全面买入特定的方法来产生这些服务,失去了更多的灵活性的缺点很神奇。

有一对夫妇的好书,你可以对RESTful服务与.NET的话题读取。 无论奥赖利和微软出版社最近发布了关于这一主题的书籍。 也许我可以为您提供最重要的建议是消耗和了解一些开放RESTful服务(例如,Twitter,亚马逊,Flickr的)理解设计决策,进入创建服务。 用户供应,认证机制和支持的内容类型(如JSON,XML,RSS / ATOM)是一些您可以在动作观察,以帮助你在你的路径,创建服务API的决定。



文章来源: Where to start REST web service in C# or ASP.Net
标签: c# rest