http - started - mdn introduction to html
¿Qué significa exactamente REST? ¿Qué es, y por qué se está haciendo grande ahora? (5)
Actualmente, HTTP está infrautilizado y mal utilizado.
Usualmente usamos solo dos métodos de HTTP: GET y POST, pero hay algunos más: DELETE, PUT, etc. ( http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html )
Entonces, si tenemos recursos, definidos por RESTful URLs (cada objeto de dominio en su aplicación tiene una URL única en forma de http://yoursite.com/path/to/the/resource ) y una implementación decente de HTTP, podemos manipular objetos en su dominio escribiendo oraciones:
OBTENER http://yoursite.com/path/to/the/resource
ELIMINA http://yoursite.com/path/to/the/resource
POST http://yoursite.com/path/to/the/resource
etc
la arquitectura es agradable y todo.
pero esta es solo una visión teórica, los escenarios del mundo real se describen en todos los enlaces publicados en las respuestas antes que las mías.
yo entiendo (creo) la idea básica detrás de RESTful-ness. Use los métodos HTTP semánticamente: GET obtiene, PUT pone, ELIMINA elimina, etc ... ¿verdad? pensé que entendía la idea detrás de REST, pero creo que estoy confundiendo eso con los detalles de una implementación de HTTP. ¿Cuál es la idea detrás del descanso, por qué esto se está convirtiendo en algo importante? ¿Alguna vez la gente lo ha usado durante mucho tiempo, en una esquina de los internets que mi linterna nunca brilló?
Aquí está mi vista ...
La atracción de hacer servicios RESTful es que en lugar de crear servicios web con docenas de métodos funcionales, estandarizamos cuatro métodos (Crear, Recuperar, Actualizar, Destruir):
- ENVIAR
- OBTENER
- PONER
- BORRAR
REST se está haciendo popular porque también representa una estandarización de los formatos de mensajería en la capa de aplicación. Si bien HTTP utiliza los cuatro verbos básicos de REST, el formato de mensaje HTTP común de HTML no es un contrato para crear aplicaciones.
La mejor explicación que he escuchado es una comparación de TCP / IP a RSS.
Ethernet representa una estandarización en la red física. El protocolo de Internet (IP) representa una estandarización más arriba en la pila, y tiene varios sabores diferentes (TCP, UDP, etc.). La introducción del "Protocolo de control de transmisión" (entrega garantizada de paquetes) definió contratos de comunicación que nos abrieron a un nuevo conjunto de servicios (FTP, Gopher, Telnet, HTTP) para la capa de aplicación.
En la analogía, hemos adoptado XML como el "Protocolo", ahora estamos comenzando a estandarizar los formatos de mensaje. RSS se está convirtiendo rápidamente en la base de muchos servicios RESTful. La API GData de Google es una variante RSS / ATOM.
El "gadget de escritorio" es una gran realización de este hype: un cliente simple puede consumir contenido web básico o mashups complejos usando un API común y un estándar de mensajería.
Esto es lo que podría parecer REST:
POST /user
fname=John&lname=Doe&age=25
El servidor responde:
201 Created
Location: /user/123
En el futuro, puede recuperar la información del usuario:
GET /user/123
El servidor responde (asumiendo una respuesta XML):
200 OK
<user><fname>John</fname><lname>Doe</lname><age>25</age></user>
Actualizar:
PUT /user/123
fname=Johnny
REST es una arquitectura donde los recursos se definen y abordan.
Para comprender mejor el REST, debe consultar la arquitectura orientada a recursos (ROA) que proporciona un conjunto de directrices para cuando realmente se implementa la arquitectura REST.
REST no necesita estar sobre HTTP, pero es el más común. REST primero fue creado por uno de los creadores de HTTP.
Vamos a ir a la historia. Hablemos de la investigación de Roy Fielding: " Estilos arquitectónicos y diseño de arquitecturas de software basadas en red ". Es un papel grande y habla muchas cosas diferentes. Pero como ingeniero estándar, ¿cómo le gustaría explicar el significado claro de REST (Representational State Transfer) y cuál es su estilo arquitectónico?
Aquí está mi manera de explicar: "Qué es REST".
Consulte esta www (world wide web) que se ejecuta sobre varios hardwares, por ejemplo, enrutadores, servidores, firewalls, infraestructuras en la nube, switches, LAN, WAN. El objetivo general de esta www (world wide web) es distribuir hypermedia . Esta red mundial está equipada con diversos servicios, por ejemplo, servicios informativos, sitios web, canales de YouTube, sitios web dinámicos, sitios web estáticos. Esta red mundial utiliza el protocolo HTTP para distribuir hipermedios en todo el mundo con un mecanismo cliente / servidor. Este protocolo HTTP funciona sobre TCP / IP u otra pila de red apropiada.
Este protocolo HTTP está utilizando ocho métodos para administrar el ''protocolo de distribución'' o ''Estilo arquitectónico de distribución''. Esos ocho métodos son a saber: OPCIONES, OBTENER, CABEZA, POSTAR, PONER, ELIMINAR, RASTREAR, CONECTAR.
Pero además de este HTTP, las aplicaciones web utilizan su propia forma de distribuir hipermedia, por ejemplo, las aplicaciones web usan servicios web que están estrechamente vinculados con los clientes y los servidores o las aplicaciones web están utilizando su propio mecanismo de cliente / servidor diseñado para hacer tal canal de distribución en la parte superior de HTTP.
Lo que dice Roy Fielding Research , que estos ocho métodos OPCIONES, OBTENER, DIRIGIR, PUBLICAR, PONER, ELIMINAR, RASTREAR, CONECTAR de HTTP tienen tanto éxito para entregar HyperMedia a todo el mundo además de una variedad de recursos de hardware y pilas de red con el cliente / mecanismo del servidor, ¿por qué no utilizamos la estrategia similar con nuestra aplicación basada en web también? En este GET, POST, DELETE y PUT se usan más. entonces cuatro métodos entregan HyperMedia a todo el mundo.
En la aplicación REST API Architecture Style , una aplicación web necesita diseñar la lógica comercial (reside en un servidor, por ejemplo, Tomcat, Apache HTTP) con todo el conjunto de entidades objeto (por ejemplo, el cliente es una entidad) y posibles operaciones (por ejemplo, ''Recuperar información del cliente en una identificación de cliente '') en ellos. Esas posibles operaciones con estas entidades se deben diseñar con cuatro operaciones o métodos principales, a saber: Crear, Recuperar, Actualizar, Eliminar. Estas entidades llamadas como recursos y estas se presentan o representan en una forma, por ejemplo, JSON o XML o algo más. Tenemos un Cliente (Navegadores) que llama a los métodos Crear, Recuperar, Actualizar, Eliminar (CRUD) para realizar la función apropiada en dichos recursos reside en el Servidor.
Pero como se explica el concepto de Representación , significa la forma en que se representan las entidades de la lógica de negocios u objetos. pero ¿qué pasa con ''State Transfer''?
The State Transfer , habla sobre el "estado de la comunicación" de Cliente a Servidor. Habla sobre el diseño de ''transferencias de estado'' de Cliente a Servidor, por ejemplo, el Cliente llamó primero a la operación ''Crear Cliente'', después de llamar a esto cuál sería el siguiente estado de cliente o estados de cliente al que ''cliente'' puede llamar. Su estado puede ser ''recuperar los datos del cliente creado'', ''actualizar los datos del cliente'' o qué