ASP.Net Web API是.NET和PHP消费的API的一个好选择吗?

5

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

我必须实现一个API,将被.Net和PHP使用。因此,我已经决定使用REST(我对Azure的Rest API非常印象深刻,比如Blob存储)。

虽然我读了几本书,比如Pro ASP.NET MVC 4APIsPro ASP.NET Web API Security,但我还是无法理解以下问题:

问题

  1. 客户端能否像SOAP WSDL一样从Web API获取强类型类?(如果不行,我需要怎么做才能像Azure Blob Storage那样获得强类型类)

  2. PHP客户端能否轻松消费Web API?(我对PHP一无所知)

谢谢你的帮助!

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

只要符合标准,无论是SOAP接口、RESTful、简单的XML数据源或者基于数据库的直接Web服务(例如:从SQL Server中提取),都能够完全满足您的需求。只要它们符合标准,任何编程语言都支持消费。 - Dave
1个回答

3

1)在客户端,您可以将响应(JSON/XML)解析为您的强类型类。以下是来自此处的代码片段:

您已经在客户端中定义了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 服务。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接