ASP.Net Web API是.Net和PHP消耗的API的不错选择吗?

时间:2013-11-25 15:39:39

标签: c# php asp.net rest asp.net-web-api

在过去,我使用ASMX,它通过SOAP WSDL提供强类型类。

我必须实现将由.Net和PHP使用的API。所以我已经决定使用REST(我对Azure的静态API(如Blob存储)留下了非常深刻的印象)。

我对Web API很陌生,虽然我读了几本书 - Pro ASP.NET MVC 4APIsPro ASP.NET Web API Security。但是,我仍然无法弄清楚以下内容 -

问题

  1. 客户端是否可以从Web API获取强类型类,如SOAP WSDL? (如果没有,我需要做些什么来获得像Azure Blob存储这样的强类型类)

  2. PHP客户端可以轻松使用Web API吗? (我对PHP一无所知)

  3. 谢谢你揭开光芒!

    请注意,这不是关于SOAP vs Rest,Web API vs WCF的争论。

1 个答案:

答案 0 :(得分:3)

1)在客户端,您可以将响应(json / xml)解析为强类型类。来自here的代码段:

您已在客户端中定义了Product类:

class Product
{
    public string Name { get; set; }
    public double Price { get; set; }
    public string Category { get; set; }
}

然后,您调用API来获取产品并将响应解析为可枚举的产品:

HttpResponseMessage response = client.GetAsync("api/products").Result;  // Blocking call!
if (response.IsSuccessStatusCode)
{
    // Parse the response body. Blocking!
    var products = response.Content.ReadAsAsync<IEnumerable<Product>>().Result;
    foreach (var p in products)
    {
        Console.WriteLine("{0}\t{1};\t{2}", p.Name, p.Price, p.Category);
    }
}

2)ASP .NET Web API基于HTTP。因此,只要您的客户端使用HTTP,您就可以使用Web服务。