2009-05-05 30 views
10

¿Cuál es la mejor manera de crear un servicio web JSON? Tenemos otro equipo que usa Java e insisten en que se haga toda la comunicación usando JSON. Preferiría usar WCF en lugar de cualquier marco de terceros.wcf json web service

Encontré este blog: http://www.west-wind.com/weblog/posts/164419.aspx, y sugiere que la implementación de Microsoft está viciada con mierda específica de M $.

+1

Es posible que desee probarlo para asegurarse de que Rick no estaba trabajando con los bits de prelanzamiento. –

Respuesta

-4

Terminé usando JayRock. Su fantástica pieza de tecnología, solo funciona. No obtienes NullReferenceExceptions como esta basura WCF si no la configuras correctamente.

+0

Estoy teniendo dificultades para entender por qué no votaste 7 veces . Parece que encontraste que eres la respuesta con la mejor manera de trabajar con un servicio web que devuelve JSON. – pqsk

13

Si usa WCF y el Framework 3.5, no podría ser más fácil. Cuando marque sus OperationContracts con el atributo WebGet, simplemente configure el parámetro ResponseFormat como WebMessageFormat.Json. Cuando se accede al servicio RESTfully, devolverá los datos utilizando DataContractJsonSerializer.

Es realmente útil marcar las POCO que desea serializar JSON como [DataContract] y marcar cada miembro serializable como [DataMember]. De lo contrario, terminas con funky JSON, como señaló Rick en su publicación de blog.

+3

buen ejemplo de todo esto: http://stackoverflow.com/questions/2086666/wcf-how-do-i-return-clean-json/ – Cheeso

4

que mantienen una alternativa madura Open Source a WCF en ServiceStack, un moderno, código primero, basado en modelos, servicios web WCF reemplazo marco encouraging code and remote best-practices para crear conciso, DRY, high-perfomance, scalable REST web services.

Incluye .NET's fastest JSON Serializer y tiene soporte automático JSON, JSONP, CORS encabezados, así como form-urlencoded/multipart-formdata. Las demostraciones en línea son un buen comienzo para mirar, ya que todas usan Ajax.

Además, no hay ninguna configuración XML, o el código de generación y su 'escribir una vez' servicio C# web proporciona todas JSON, XML, SOAP, JSV, CSV, HTML puntos finales habilitados fuera de la caja, de forma automática con ganchos para conectar su propia Content Types si es necesario .

También incluye generic sync/async service clients que proporciona una puerta de enlace de comunicaciones cliente/servidor rápida, mecanografiada de extremo a extremo.

Este es el ejemplo completo de todo el código necesario para crear un servicio web simple, es decir de forma automática sin ningún tipo de configuración, registrado y puesto a disposición en todo el web data formats on pre-defined and custom REST-ful routes:

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 }; 
    } 
} 

Por encima de servicio puede ser llamado (sin acumulaciones pasos/código-gen) en C# con la línea de abajo:

var client = new JsonServiceClient(baseUrl); 
var response = client.Send<HelloResponse>(new Hello { Name = "World!" }); 
Console.WriteLine(response.Result); // => Hello, World 

Y en jQuery con:

$.getJSON('hello/World!', function(r){ 
    alert(r.Result); 
}); 
+1

Saludos, ¡ciertamente lo probaré! – Grzenio

2

¿Cuál es la mejor manera de crear un servicio web JSON? Tenemos otro equipo que está utilizando Java e insisten en que se realice toda la comunicación utilizando JSON. Preferiría usar WCF en lugar de cualquier marco de terceros .

Aquí hay un tutorial fácil de seguir, que lo lleva a través del proceso de configuración de su primer Servicio WCF, luego vinculándolo a una base de datos SQL Server.

http://mikesknowledgebase.com/pages/Services/WebServices-Page1.htm

Se utiliza amada Northwind base de datos del servidor SQL de Microsoft, y muestra cómo escribir un simple servicio web JSON WCF para leer y escribir es de datos.

enter image description here

Ah, y luego muestra cómo consumir los datos JSON utilizando JavaScript o una aplicación de iOS.

¡Buena suerte!

+0

este artículo también me ayudó: soy muy nuevo en los servicios web de WCF. – Krondorian