traductor traducir spanishdict online introductor introduccion inglés ingles gratis frases español diccionario convertidor como web-services rest

web services - traducir - ¿Puedes explicar el concepto web de RESTful?



traductor de ingles online (7)

Buscando explicaciones claras y concisas de este concepto.



Francamente, la respuesta depende del contexto. REST y RESTful tienen significados que dependen del idioma o marco que estés usando o de lo que trates de lograr. Como ha etiquetado su pregunta en "servicios web" responderé en el contexto de los servicios web RESTful, que todavía es una categoría amplia.

Los servicios web RESTful pueden significar cualquier cosa, desde una estricta interpretación REST, donde todas las acciones se realizan de una manera estrictamente "RESTful", hasta un protocolo que es XML simple, lo que significa que no es SOAP o XMLRPC. En el último caso, este es un nombre inapropiado: un protocolo REST como este es realmente un protocolo "plain old XML" (o "POX") . Mientras que los protocolos REST usualmente usan XML y, como tales, son protocolos POX, esto no necesariamente tiene que ser el caso, y el inverso no es verdadero (simplemente porque un protocolo usa XML no lo hace RESTful).

Sin más preámbulos, una verdadera API REST consiste en acciones tomadas sobre objetos, representadas por el método HTTP utilizado y la URL de ese objeto. Las acciones son sobre los datos y no sobre lo que hace el método. Por ejemplo, las acciones de CRUD (crear, leer, actualizar y eliminar) pueden asignarse a un determinado conjunto de URL y acciones. Digamos que estás interactuando con una API de fotos.

  • Para crear una foto, debe enviar datos a través de una solicitud POST a / fotos. Le permitirá saber dónde está la foto a través del encabezado de la ubicación, p. Ej. / Photos / 12345
  • Para ver una foto, usarás GET / photos / 12345
  • Para actualizar una foto, debe enviar datos a través de una solicitud PUT a / photos / 12345.
  • Para eliminar una foto, usaría DELETE / photos / 12345
  • Para obtener una lista de fotos, debe usar GET / fotos.

Se pueden implementar otras acciones, como la capacidad de copiar fotos mediante una solicitud COPY.

De esta forma, el método HTTP que está utilizando se correlaciona directamente con la intención de su llamada, en lugar de enviar la acción que desea tomar como parte de la API. Para contrastar, una API no RESTful podría usar muchas más URL y solo usar las acciones GET y POST. Por lo tanto, en este ejemplo, es posible que vea:

  • Para crear una foto, envíe una POST a / photos / create
  • Para ver una foto, envíe un GET a / photos / view / 12345
  • Para actualizar una foto, envíe una POST a / photos / update / 12345
  • Para eliminar una foto, envíe un GET a / photos / delete / 12345
  • Para obtener una lista de fotos, envíe un GET a / photos / list

Observará cómo en este caso las URL son diferentes y los métodos se eligen solo por necesidad técnica: para enviar datos, debe usar un POST, mientras que todas las demás solicitudes usan GET.



RESTO a modo de ejemplo:

POST /user fname=John&lname=Doe&age=25

El servidor responde:

200 OK Location: /user/123

En el futuro, puede recuperar la información del usuario:

GET /user/123

El servidor responde:

200 OK <fname>John</fname><lname>Doe</lname><age>25</age>

Actualizar:

PUT /user/123 fname=Johnny


Significa usar nombres para identificar tanto comandos como parámetros.

En lugar de nombres que son meros identificadores o apodos, el nombre en sí contiene información. Específicamente, información sobre lo que se solicita, parámetros para la solicitud, etc.

Los nombres no son "raíces", sino más bien acciones más datos de entrada.


Solo algunos puntos:

  • RESTFul no depende del marco que use. Depende del estilo arquitectónico que describe. Si no sigue las restricciones, no es RESTful. Las limitaciones están definidas en media página del Capítulo 5 del documento de Roy Fielding, lo invito a que vaya y lo lea.
  • El identificador es opaco y no incluye información más allá de la identificación de un recurso. Es un nmae, no datos de entrada, solo nombres. en lo que respecta al cliente, no tiene lógica o valor más allá de saber cómo construir querystrings desde una etiqueta de formulario. Si su cliente construye sus propios URI usando un esquema que ha decidido de antemano, no estará tranquilo.
  • El uso o no de todos los verbos http no es realmente la restricción, y es perfectamente aceptable diseñar una arquitectura que solo admita POST.
  • El caché, el alto desacoplamiento, la falta de estado de sesión y la arquitectura en capas son los puntos de los que pocos hablan, pero los más importantes para el éxito de una arquitectura RESTful.

Si no dedica la mayor parte de su tiempo a crear su formato de documento, probablemente no esté haciendo REST.


Una aplicación RESTful es una aplicación que expone su estado y funcionalidad como un conjunto de recursos que los clientes pueden manipular y que se ajusta a un cierto conjunto de principios:

  • Todos los recursos son direccionables de forma exclusiva, generalmente a través de URI; otro direccionamiento también puede ser utilizado, sin embargo.
  • Todos los recursos se pueden manipular a través de un conjunto restringido de acciones conocidas, generalmente CRUD (crear, leer, actualizar, eliminar), representadas más a menudo a través de HTTP POST, GET, PUT y DELETE; aunque puede ser un conjunto diferente o un subconjunto; por ejemplo, algunas implementaciones limitan ese conjunto para leer y modificar solo (GET y PUT), por ejemplo
  • Los datos para todos los recursos se transfieren a través de cualquiera de un número restringido de representaciones bien conocidas, generalmente HTML, XML o JSON;
  • La comunicación entre el cliente y la aplicación se realiza a través de un protocolo sin estado que permite intermediarios en múltiples capas que pueden redirigir y almacenar en caché las solicitudes y los paquetes de respuesta de forma transparente para el cliente y la aplicación.

El artículo de Wikipedia apuntado por Tim Scott brinda más detalles sobre el origen de REST, principios detallados, ejemplos, etc.