Является ASP.Net Веб-API - хороший выбор для API, используемого.Сеть и PHP?
В старые времена я использовал ASMX, который предоставляет строго типизированные классы через SOAP WSDL.
Я должен реализовать API, который будет использоваться обоими.Сеть и PHP. Поэтому я уже решил пойти с REST (я действительно впечатлен API-интерфейсами Rest Azure, такими как хранилище больших двоичных объектов).
Я довольно новичок в веб-API, хотя и прочитал несколько книг - Pro ASP.NET MVC 4, API-интерфейсы, Про ASP.NET Безопасность веб-API. Тем не менее, я все еще не могу понять следующее -
Вопросы
Может ли клиент получать строго типизированные классы из веб-API, например SOAP WSDL? (Если нет, что мне нужно сделать, чтобы получить строгие типизированные классы, такие как хранилище больших двоичных объектов Azure)
Может ли PHP-клиент легко использовать веб-API? (Я ничего не знаю о PHP)
Спасибо, что пролили свет!
Пожалуйста, обратите внимание, что это не аргумент о SOAP против Rest, Веб-API против WCF.
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, вы можете пользоваться веб-сервисами.