在过去,我使用ASMX,它通过SOAP WSDL提供强类型类。
我必须实现将由.Net和PHP使用的API。所以我已经决定使用REST(我对Azure的静态API(如Blob存储)留下了非常深刻的印象)。
我对Web API很陌生,虽然我读了几本书 - Pro ASP.NET MVC 4,APIs,Pro ASP.NET Web API Security。但是,我仍然无法弄清楚以下内容 -
客户端是否可以从Web API获取强类型类,如SOAP WSDL? (如果没有,我需要做些什么来获得像Azure Blob存储这样的强类型类)
PHP客户端可以轻松使用Web API吗? (我对PHP一无所知)
谢谢你揭开光芒!
请注意,这不是关于SOAP vs Rest,Web API vs WCF的争论。
答案 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服务。