我想开始编写一些REST Web服务作为提供数据的方式.我想当我的REST Web服务可用时,我的一些Web应用程序和控制台应用程序将能够使用REST Web服务作为数据服务来获取,添加,更新和删除数据到数据库.除此之外,我想添加身份验证功能来识别任何请求.
我的问题是我应该从哪里开始?我看到了Microsoft ADO.Net数据服务.不确定这是一个好的开始吗?有没有可用的例子?
myt*_*thz 10
您可能还想查看servicestack.net一个开源,跨平台,高性能的Web服务框架,它允许您使用代码优先,强类型DTO开发Web服务,该DTO将自动(无任何配置)立即可用在各种不同的端点上开箱即用(即XML,JSON,JSV,SOAP 1.1/1.2).
此外,您可以通过您选择的任何ReST-ful URL提供相同的Web服务,其中您的REST客户端可以指定首选的序列化格式,即
见没有什么,但休息!有关如何使用仅1页jQuery和1页C#开发完整REST-ful Ajax CRUD应用程序的Web服务示例.
一个好的起点是Hello World示例,了解如何轻松地将ServiceStack Web服务添加到任何现有的ASP.NET Web应用程序.
为了提高性能,ServiceStack构建了一个优秀的Ajax服务器,因为它与最快的JSON Serializer for .NET捆绑在一起(比其他JSON Serializer快3倍).
查看这个实时Ajax应用程序的味道(在Linux/Nginx/MONO上托管的现场演示).
ServiceStack还可以轻松创建强类型无摩擦Web服务,只需使用以下代码即可返回客户POCO列表:
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>())
};
}
Run Code Online (Sandbox Code Playgroud)
没有其他配置,您现在可以调用上面的Web服务REST完全返回所有:
您可以使用您首选的通用ServiceClient(即Json,Xml等),使用与您的Web服务定义相同的DTO(即不需要代码生成)来调用上述Web服务.这允许您使用强类型API调用您的Web服务,只需1行代码:
C#同步示例
IServiceClient client = new JsonServiceClient("http://host/service");
var customers = client.Send<CustomersResponse>(new Customers());
Run Code Online (Sandbox Code Playgroud)
由于您的Web服务也是REST服务,因此它可以与JavaScript ajax客户端无缝协作,例如:
使用jQuery
$.getJSON("http://host/service", function(r) { alert(r.Customers.length); });
Run Code Online (Sandbox Code Playgroud)