Web Service REST
Web Service REST
Qué es REST
Actualmente, las API REST están realmente de moda: parece que
cualquier aplicación deba proporcionar su “API REST”. Pero... ¿qué
significa realmente una API REST?
Estos métodos también los conocemos como los verbos del HTTP y
son los siguientes:
1. separación cliente/servidor
Al ser sistemas independientes (solo se comunican con un lenguaje
de intercambio como JSON) puedes desarrollarlos proyectos
autónomos, equipos autónomos. Al cliente le da igual cómo está
hecha la API y al servidor le da igual qué vas a hacer con los datos
que te ha proporcionado.
Si necesitas evolucionar/refactorizar uno de los dos, back o front, se
puede hacer de manera separada, siempre que se mantenga la
interfaz del API.
4. Experiencia de usuario
Aunque eso depende más de cómo está hecha la parte del cliente,
teóricamente el desarrollo de sitios web basados en un API puede
dar mejor desempeño que uno tradicional. Cuando haces una
solicitud al servidor lo que tienes como respuesta son datos planos,
que requieren tiempos de transferencia menores que si esos
mismos datos los recibieras mezclados con el HTML/CSS de la
presentación. En este tipo de aplicaciones web no necesitas
recargar la página, aunque esto no es una ventaja específica del
desarrollo basado en REST, sino del uso de Ajax en general, con el
que podemos conseguir aplicaciones web que se asemejan más a
aplicaciones de escritorio
Conclusión
En definitiva observarás que las ventajas e inconvenientes del
desarrolla basado en API REST están muy interligados. Lo que
puede comenzar como una ventaja puede suponer una desventaja
en otro punto de tu aplicación. Sin embargo, como hemos dicho,
existen muchas situaciones en las que desarrollar basados en un
API nos puede aportar un gran adelanto.
4. [OperationContract(Name = "PostSampleMethod")]
5. [WebInvoke(Method = "POST",
6. UriTemplate = "PostSampleMethod/New")]
7. string PostSampleMethod(Stream data);
1. using System.ServiceModel.Web;
2. using System.ServiceModel
3. using System.Runtime.Serialization
4. using System.IO
5. [OperationContract(Name = "GetSampleMethod")]
6. [WebGet(UriTemplate = "GetSampleMethod/inputStr/{name}"
)]
7. string GetSampleMethod(string name);
1. <services>
2. <servicename="WcfRestBased.MyService"
3. behaviorConfiguration="myServiceBehavior">
4. <endpointname="webHttpBinding"
5. address=""
6. binding="webHttpBinding"
7. contract="WcfRestBased.IMyService"
8. behaviorConfiguration="webHttp"
9. >
10. </endpoint>
11. <endpointname="mexHttpBinding"
12. address="mex"
13. binding="mexHttpBinding"
14. contract="IMetadataExchange"
15. />
16. </service>
17. </services>
1. Nombre del servicio: para encontrar lo que se debe
proporcionar, luego haga clic derecho en el servicio y seleccione
la opción ViewMarkup. Por ejemplo, en mi caso es MyService.svc,
busque el atributo de servicio y use la cadena completa en mi
caso es Service="WcfRestBased.MyService
"behaviorConfiguration: puede ser cualquier nombre, pero se
usará nuevamente cuando definamos la configuración de
comportamiento. En mi caso, es myServiceBehavior