SERVICIOS WEB RES Y RESTFUL

REST se ha convertido en una de las tecnologías más importantes para aplicaciones web,  y continua desarrollándose paralelamente a la orientación de las tecnologías API. Actualmente, los lenguajes de desarrollo incluyen frameworks para construir servicios web Restful.  Por esta razón, es importante que los desarrolladores web y los arquitectos, tengan un claro entendimiento de los servicios Rest y Restful.

REST (Representational State Transfer), el término transferencia de estado, se refiere al uso de operaciones tales como get, deleteput, entre otros, que se usan cuando se utiliza HTTP. Los servicios rest y restful, brindan interoperabilidad entre los sistemas informáticos de Internet. Los servicios web con características REST permiten que los sistemas solicitantes accedan y manipulen las representaciones textuales de los recursos web mediante el beneficio de un conjunto uniforme y predefinido de operaciones sin estado. Otros tipos de servicios web, como los servicios web SOAP, exponen sus propios conjuntos arbitrarios (escogidos al azar) de operaciones.

Características de un servicio Restful

Un servicio Restful, como característica puede administrar recursos de imágenes, servicios de video, páginas web, entre otros. El principal propósito es proporcionar una ventana a los usuarios para que puedan acceder a estos recursos. De ahí, que estos servicios deben ser fáciles de implementar, mantenibles, extensibles y escalables en el tiempo. Las principales propiedades y características de un servicio restful son las siguientes: (1.) Representaciones(2.) mensajes(3.) URIs(4.) interfaz uniforme(5.) apátrida(6.) enlaces entre recursos  y  (7.) almacenamiento caché.  

El enfoque de un servicio Restful está en los recursos y en cómo proporcionar acceso a estos recursos. Una vez identificados los recursos, el paso siguiente será encontrar una manera de representar estos recursos en el sistema. Se puede usar cualquier formato para representar los recursos, por ejemplo, dependiendo de los requeriemientos, se puede usar JSON o XML. Y si,  se está desarrollando servicios web para llamadas AJAX, entonces una buena elección es utilizar JSON.

Representación de un recurso JSON. 

1
2
3
4
5
6
{
    "ID": "1",
    "Nombre": "H Abril",
    "Email": "habril@gcidsa.com",
    "Ciudad": "Colombia"
}

Representación de un recurso XML.

1
2
3
4
5
6
7
8
9
10
<Persona>
 <ID>1</ID>
 <Nombre>H Abril</Nombre>
 <Email>habril@gcidsa.com</Email>
 <Ciudad>Colombia</Ciudad>
</Persona>

 1. Representations

El enfoque de un servicio Restful está en los recursos y en cómo proporcionar acceso a estos recursos. Una vez identificados los recursos, el paso siguiente será encontrar una manera de representar estos recursos en el sistema. Se puede usar cualquier formato para representar los recursos, por ejemplo, dependiendo de los requeriemientos, se puede usar JSON o XML, y si,  se está desarrollando servicios web para llamadas AJAX, entonces una buena elección es utilizar JSON.

2. Mensajes.

El cliente y el servicio hablan entre ellos a través de mensajes. Los clientes envían una solicitud al servidor y el servidor responde con una respuesta.  Además de los datos reales, estos mensajes también contienen algunos metadatos sobre el mensaje. Es importante tener algunos antecedentes sobre los formatos de solicitud y respuesta HTTP 1.1 para diseñar servicios web RESTful.

Formato de una solicitud HTTP 

El fromato está conformado por:

Ejemplo POST        

1
2
3
4
5
6
7
8
9
10
11
Host: MyService
Content-Type: text/xml; charset=utf-8
Content-Length: 123
<?xml version="1.0" encoding="utf-8"?>
<Person>
  <ID>1</ID>
  <Name>H Abril</Name>
  <Email>H.Abril@gcidsa.com</Email>
  <Country>Colombia</Country>
</Person>

a. El verbo, que corresponde con un método como GET, PUT POST, DELETE, OPTIONS, ect.

b. La URI, es decir el recurso sobre cual la operación es ejecutada.

c. Un HTTP, que es la versión de HTTP, que generalmente es 1.1. 

d. El encabezado de la solicitud,  que contiene los metadatos como una colección de pares clave - valor de encabezados, y sus valores. Esta configuración contiene información sobre el mensaje y su remitente. Por ejemplo, el tipo de cliente, los formatos que admite el cliente, el tipo de formato del cuerpo del mensaje, las configuraciones caché  para la respuesta, entre otra información. 

e. El cuerpo de la solicitud, corresponde con el mensaje real. En un servicio Restful, es donde las representaciones de recursos definen el mensaje.

 Ejemplo GET 

1
2
3
4
5
6
Host: www.w3.org
Accept: text/html,application/xhtml+xml,application/xml; …
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 …
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,hi;q=0.6

En el ejemplo POST, se puede observar el comando POST, seguido por el URI y la versión HTTP. que son algunos de los elementos del encabezado. Host es la dirección del servidor. Content-Type informa sobre el tipo de contenido en el cuerpo del mensaje. Content-Length es la longitud de los datos en el cuerpo del mensaje. Content-Length se puede usar para verificar que se haya recibido todo el cuerpo del mensaje. Observe que no hay etiquetas de inicio o final en este mensaje.

 

 

 



 
Leave your comment
back to top