Diferencia entre revisiones de «Usuario:ManuelRomero/PHP/servicioWeb/rest»

De WikiEducator
Saltar a: navegación, buscar
(REST)
(URI y URL's amigables)
Línea 68: Línea 68:
 
*'''''URL''''' la representación del estado en un momento dado den un sistema REST es básicamente  HTML o XML. Como resultado de esto, es posible navegar de un recurso REST a muchos otros, simplemente siguiendo enlaces sin requerir el uso de registros u otra infraestructura adicional.}}
 
*'''''URL''''' la representación del estado en un momento dado den un sistema REST es básicamente  HTML o XML. Como resultado de esto, es posible navegar de un recurso REST a muchos otros, simplemente siguiendo enlaces sin requerir el uso de registros u otra infraestructura adicional.}}
 
====URI y URL's amigables====
 
====URI y URL's amigables====
 +
<br />
 
{{Definicion|title=Qué es una URI|
 
{{Definicion|title=Qué es una URI|
 
Un URI es un '''''identificador de recurso único'''''}}
 
Un URI es un '''''identificador de recurso único'''''}}
Línea 89: Línea 90:
 
  /usr/sbin/apachectl -t -D DUMP_MODULES
 
  /usr/sbin/apachectl -t -D DUMP_MODULES
 
*Nos listará los módulos instalados. Buscamos rewrite'''''
 
*Nos listará los módulos instalados. Buscamos rewrite'''''
 +
*En caso de no tenerlo instalado lo instalamos
 +
sudo a2enmod rewrite
 +
*Después reiniciamos el servicio
 +
sudo service apache2 restart
 +
RewriteEngine on 
 +
RewriteBase /servicio_rest/ 
 +
RewriteCond %{REQUEST_FILENAME} !-d 
 +
RewriteCond %{REQUEST_FILENAME} !-f 
 +
RewriteCond %{REQUEST_FILENAME} !-l 
 +
RewriteRule ^(.+)$ productos.php?url=$1 [QSA,NC,L] 
 +
*Las reglas de reescritura se deben definir en los ficheros de configuración de Apache (httpd.conf) o, en el caso que este activada la capacidad de reescritura, en un archivo .htaccess localizado en el directorio del servidor web donde se quiere que tenga efecto.

Revisión de 12:46 31 ene 2016


REST

  • Término introducido por [Roy Fielding] en 2000 (es uno de los principales autores de la especificación HTTP)
    • Todos los recursos a los que accedemos en la web son definidos y diseccionados
  • Rest define cómo se establece una interacción entre sistemas basada en un navegador web y http


Icon key points.gif

Puntos clave

REST Permite definir una interfaz web



interfaz
  • Como de exponernos al exterior para que puedan interactuar con nosotros
    • Cómo recoger los datos para poderlos interpretar
    • Como generar una salida para que nos la entiendas

Interfaz.png

web
  • red de páginas o recursos que se comunica por el protocolo http

(No es una definición, pero sí un concepto importante y una realidad).


Icon key points.gif

Puntos clave

Rest se centra en la manipulación de recursos a través de especificaciones http



Base de Rest

Rest no es un estándar, es una especificación basada en estándares
  1. http
    1. Protocolo sin estado
    2. Vebos o acciones en la solicitud GET, POST, DELETE, UPDATE y PUSH.
  2. URL
  3. Representación de los recursos
  4. Tipos MIME : text/html , text/xml, text/json,...


Icon key points.gif

Puntos clave

  • http es un protocolo sin estado
  • Cada mensaje http contiene en sí mismo toda la información necesaria para comprender la petición




Icon key points.gif

Puntos clave

El protocolo http establece en cada mensaje http un verbo o acción que encabeza la solicitud del mensaje Este puede ser

  1. GET Solicitar algo, es el tipo de mensaje por defecto
  2. POST Para facilitar datos al servidor. Lo manejamos principalemnte en formularios
  3. DELETE Se facilita un dato al servidor para ser eliminado
  4. UPDATE Se facilita datos al servidor para ser actualizados
  5. PUSH No se utiliza es una actualización parcial ?



  • Estas acciones suelenser comparados con las operaciones asociadas a la tecnología de base de datos,

operaciones CRUD: CREATE, READ, UPDATE, DELETE.

  • Existen otra analogías como podemos ver en la tabla siguiente:
Acciones básica con analogías
Accion HTTP SQL Copy&Paste UNIX Shell
Create PUT Insert Pegar >
Read GET Select Copiar <
Update POST Update Pegar >>
Delete DELETE Delete Cortar Del / rm

Acción HTTP SQL Copy&Paste Unix Shell Create PUT Insert Pegar > Read GET Select Copiar < Update POST Update Pegar después >> Delete DELETE Delete Cortar Del/rm


Icon key points.gif

Puntos clave

  • URI: REST usa una sintaxis universal para identificar los recursos. En un sistema REST, cada recurso es direccionable únicamente a través de su URI.
  • URL la representación del estado en un momento dado den un sistema REST es básicamente HTML o XML. Como resultado de esto, es posible navegar de un recurso REST a muchos otros, simplemente siguiendo enlaces sin requerir el uso de registros u otra infraestructura adicional.


URI y URL's amigables



Icon define.gif

Definición

Un URI es un identificador de recurso único


  • Una URL es el localizador de ese recurso, por ejemplo

http://localhost/tienda/producto.php La URL es http://localhost/tienda.php El URI o recurso es producto.php

  • Una URL amigable es una URL que el cliente va a escribir en el navegador, aunque no existe tal cual en el servidor, sino que el servidor realiza una tradcucción
  • supongamos que en nuestro proyecto tenemos la URL
http://localhost/reescritura/paginaAmigosConfianza.php&dato=pedro
  • Es claro ver que a alguien le sería mas claro escribir
http://localhost/reescritura/amigo/pedro
  • Para conseguir esto, lo que tendríamos que hacer es establecer una regla en el servidor de modo que traduzca una url en la otra
Pasos a seguir
  • La sobreescritura de direcciones amigables la hace el módulo rewrite' de apache
  • Primero miramos a ver si tenemos ese módulo instalado
/usr/sbin/apachectl -t -D DUMP_MODULES
  • Nos listará los módulos instalados. Buscamos rewrite
  • En caso de no tenerlo instalado lo instalamos
sudo a2enmod rewrite
  • Después reiniciamos el servicio
sudo service apache2 restart
RewriteEngine on  
RewriteBase /servicio_rest/  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-l  
RewriteRule ^(.+)$ productos.php?url=$1 [QSA,NC,L]  
  • Las reglas de reescritura se deben definir en los ficheros de configuración de Apache (httpd.conf) o, en el caso que este activada la capacidad de reescritura, en un archivo .htaccess localizado en el directorio del servidor web donde se quiere que tenga efecto.