Вопрос
Как лучше всего создать веб-сервис JSON? У нас есть другая команда, которая использует Java, и они настаивают на том, чтобы все общение осуществлялось с использованием JSON. Я бы предпочел использовать WCF, а не какой-либо сторонний фреймворк.
Я нашел этот блог: http://www.west-wind.com /weblog/posts/164419.aspx , и это предполагает, что реализация Microsoft имеет недостатки с дерьмом, специфичным для M $.
Решение 4
В итоге я использовал JayRock . Это фантастическая технология, просто работает. Вы не получите никаких исключений NullReferenceException, например, из этого дерьма WCF, если не настроите его правильно.
Другие советы
Если вы используете WCF и 3.5 Framework, это не может быть проще. Когда вы помечаете ваши OperationContracts атрибутом WebGet, просто установите для параметра ResponseFormat значение WebMessageFormat.Json. Когда к сервису обращаются RESTful, он вернет данные с помощью DataContractJsonSerializer.
Действительно полезно пометить POCO, которые вы хотите сериализовать JSON, как [DataContract] и пометить каждый сериализуемый элемент как [DataMember]. В противном случае вы получите фанк JSON, как отметил Рик в своем блоге.
Я поддерживаю зрелую альтернативу WCF с открытым исходным кодом в ServiceStack , современном, сначала кодовом, модельном управляемая, заменяющая среда веб-служб WCF поощрение кода и удаленных рекомендаций для создания краткого, СУХОГО, высокопроизводительные, масштабируемые веб-службы REST .
Он включает в себя самый быстрый сериализатор JSON .NET и имеет автоматическую поддержку JSON, JSONP , заголовки CORS , а также url-кодированные / multipart-formdata. Онлайн-демонстрации - хорошее начало, так как все они используют Ajax.
Кроме того, здесь нет конфигурации XML или code-gen, и ваш веб-сервис C # с однократной записью предоставляет все Конечные точки JSON, XML, SOAP, JSV, CSV, HTML включаются" из коробки ", автоматически подключаются к своим собственным Типы содержимого , если необходимо.
Он также включает в себя общих клиентов службы синхронизации / асинхронизации , обеспечивающих быструю типизированную печать. клиент-серверный межсетевой шлюз.
Это полный пример всего кода, необходимого для создания простого веб-сервиса, который автоматически без каких-либо настроек регистрируется и становится доступным для всех форматы веб-данных по предопределенным и настраиваемым маршрутам REST-ful :
public class Hello {
public string Name { get; set; }
}
public class HelloResponse {
public string Result { get; set; }
}
public class HelloService : IService<Hello> {
public object Execute(Hello request)
{
return new HelloResponse { Result = "Hello, " + request.Name };
}
}
Выше сервис может быть вызван (без каких-либо шагов сборки / кода) в C # со строкой ниже:
var client = new JsonServiceClient(baseUrl);
var response = client.Send<HelloResponse>(new Hello { Name = "World!" });
Console.WriteLine(response.Result); // => Hello, World
И в jQuery с:
$.getJSON('hello/World!', function(r){
alert(r.Result);
});
Как лучше всего создать веб-сервис JSON? У нас есть другой команда, которая использует Java, и они настаивают на том, чтобы все общение сделано с использованием JSON. Я предпочел бы использовать WCF, а не какой-либо третьей стороной рамки.
Вот простое пошаговое руководство, которое проведет вас через процесс настройки первой службы WCF, а затем ее связывания с базой данных SQL Server.
http://mikesknowledgebase.com/pages/Services/WebServices-Page1.htm р>
Он использует любимую базу данных Microsoft Northwind SQL Server и показывает, как написать простую веб-службу JSON WCF для чтения и записи своих данных.
О, а затем показано, как использовать данные JSON с помощью JavaScript или приложения для iOS.
Удачи!