¿Cuál es el beneficio de las URI de recursos globales (es decir, la direccionabilidad)?

StackOverflow https://stackoverflow.com/questions/147172

  •  02-07-2019
  •  | 
  •  

Pregunta

¿Cuál es el beneficio de hacer referencia a los recursos que usan URI únicos a nivel mundial (como lo hace REST) ??en lugar de usar un formato de identificación propietario?

Por ejemplo:

  1. http://host.com/student/5
  2. http://host.com/student?id=5

En el primer enfoque, la URL completa es el ID. En el segundo enfoque solo el 5 es el ID. ¿Cuál es el beneficio práctico del primer enfoque sobre el segundo?

¿Por qué REST (parece que) hace todo lo posible para abogar por el primer enfoque?

- EDITAR:

Mi pregunta fue confusa porque realmente formuló dos preguntas separadas:

  1. ¿Cuál es el beneficio de la direccionabilidad?
  2. ¿Cuál es la diferencia entre los dos formularios URI vistos anteriormente?

He respondido a las dos preguntas a continuación usando mi propia publicación.

¿Fue útil?

Solución 2

Responderé a mi propia pregunta:

1) ¿Por qué son importantes las URI?

Citaré los RESTful Web Services de Leonard Richardson y Sam Ruby (ISBN: 978-0-596-52926-0) :

  

Considere un URI real que nombre un recurso en el género "directorio de recursos sobre   jellyfish ": http://www.google.com/search?q=jellyfish . Esa búsqueda de medusas es igual de   es un URI real como http://www.google.com . Si HTTP no era direccionable, o si el Google   El motor de búsqueda no era una aplicación web accesible, no podría publicar esa   URI en un libro. Tendría que decirte: "Abre una conexión web a google.com, escribe‘ jellyfish ’   en el cuadro de búsqueda y haga clic en el botón "Búsqueda de Google".

     

Esto no es una preocupación académica. Hasta mediados de los 90, cuando ftp: // URIs   se hizo popular por describir archivos en sitios FTP, la gente tenía que escribir   cosas como: "Inicie una sesión FTP anónima en ftp.example.com. Entonces   cambie al directorio pub / files / y descargue el archivo file.txt. ”URI realizados   FTP tan accesible como HTTP. Ahora la gente simplemente escribe: "Descargar ftp: //   ftp.example.com/pub/files/file.txt. "Los pasos son los mismos, pero ahora   Se puede realizar a máquina.

     

[...]

     

La direccionabilidad es una de las mejores cosas de las aplicaciones web. Lo hace fácil para   clientes que usen sitios web de maneras que los diseñadores originales nunca imaginaron.

2) ¿Cuál es el beneficio de la direccionabilidad?

  

Es mucho más fácil seguir las URI proporcionadas por el servidor que construirlas tú mismo. Esto es especialmente cierto ya que las relaciones de recursos se vuelven demasiado complejas para ser expresadas en reglas simples. Es más fácil codificar la lógica una vez en el servidor que volver a implementarla en numerosos clientes.

     

La relación entre los recursos puede cambiar incluso si los URI de los recursos individuales permanecen sin cambios. Por ejemplo, si Google Maps cambiara la escala de sus mosaicos de mapas, los clientes que calculen las posiciones relativas de los mosaicos se romperían.

3) ¿Cuál es el beneficio de los URI sobre las ID personalizadas?

  

Las ID personalizadas identifican un recurso de forma única. Los URI van un paso más allá al decirle dónde encontrarlo. Esto simplifica la lógica del cliente.

Otros consejos

Lo principal cuando veo que uri es así es que un usuario normal podría recordar ese uri.

Los geeks están bien con los signos de interrogación y obtienen variables, pero si alguien recuerda http: // www. host.com/users/john en lugar de http://www.host. com /? view = users & amp; name = john , eso es un gran beneficio.

La optimización de motores de búsqueda en su mayoría.

También los hace más fáciles de recordar, y más limpios, más profesionales en mi opinión.

El primero es más agradable estéticamente.

Técnicamente no hay diferencia, pero usa la primera cuando puedas.

Como se menciona en & # 211; lafur, la claridad de la url anterior es un beneficio.

Otro es la flexibilidad de implementación.

Digamos que el estudiante 5 cambia con poca frecuencia. Si usa la url de estilo REST, tiene la opción de servir un archivo estático en lugar de ejecutar código. En Rails, es común que la primera solicitud a estudiantes / 5 cree un archivo html en caché bajo su raíz web. Ese archivo se utiliza para atender solicitudes posteriores sin tocar el backend. Naturalmente, no hay nada específico sobre ese enfoque.

La url posterior no permitiría esto. No puede tener variables de URL (?, =) En los nombres de las páginas estáticas.

Ambos URI son válidos desde una perspectiva REST, sin embargo, simplemente se da cuenta de que los cachés web tratan los parámetros de la cadena de consulta de manera muy diferente.
Si desea utilizar el almacenamiento en caché para su ventaja, le sugiero que no utilice un parámetro de cadena de consulta para identificar su recurso.

Creo que todo se reduce a qué tan cerca quieres adherirte a los principios del feng shui.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top