Является ASP.Net Веб-API - хороший выбор для API, используемого.Сеть и PHP?


В старые времена я использовал ASMX, который предоставляет строго типизированные классы через SOAP WSDL.

Я должен реализовать API, который будет использоваться обоими.Сеть и PHP. Поэтому я уже решил пойти с REST (я действительно впечатлен API-интерфейсами Rest Azure, такими как хранилище больших двоичных объектов).

Я довольно новичок в веб-API, хотя и прочитал несколько книг - Pro ASP.NET MVC 4, API-интерфейсы, Про ASP.NET Безопасность веб-API. Тем не менее, я все еще не могу понять следующее -

Вопросы

  1. Может ли клиент получать строго типизированные классы из веб-API, например SOAP WSDL? (Если нет, что мне нужно сделать, чтобы получить строгие типизированные классы, такие как хранилище больших двоичных объектов Azure)

  2. Может ли PHP-клиент легко использовать веб-API? (Я ничего не знаю о PHP)

Спасибо, что пролили свет!

Пожалуйста, обратите внимание, что это не аргумент о SOAP против Rest, Веб-API против WCF.

Author: Community, 2013-11-25

1 answers

1) На стороне клиента вы можете проанализировать ответ (json/xml) как свой строго типизированный класс. Фрагмент кода из здесь:

Вы уже определили класс продукта в своем клиенте:

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) ЖЕРЕХ.СЕТЕВОЙ веб-API основан на HTTP. Таким образом, пока ваш клиент говорит по протоколу HTTP, вы можете пользоваться веб-сервисами.

 3
Author: kaptan, 2013-11-25 20:49:05