URL lógicas y físicas

Esta pregunta es como una extensión de mi pregunta anterior aquí: “¿Es este servicio web reposado?” Un bash de comprender mejor el concepto de un servicio web de reposo. Leo casi todo lo que hay que leer sobre Rest y, sin embargo, no puedo entender si un cierto servicio web está en reposo o no, o por qué no lo es. De la manera en que lo veo, todo es y no es descanso dependiendo del punto de vista …

Leí en un artículo muy interesante algo que por fin me puede ayudar a entender qué es el Descanso. Leí que Rest no utiliza urls físicas sino lógicas.

Recuerdo que una vez desarrollé una aplicación de iOS en la que teníamos que registrar / suscribir un usuario, etc. y me dijeron que debía realizar una determinada solicitud HTTP posterior a nuestro servidor a una URL que se veía así: www.myServer/devices/device/register . En el cuerpo de esta solicitud, tenía toda la información en formato json que necesitaba el servidor. En ese momento, el servidor para mí era una caja negra, así que ni siquiera me importaba qué significaba este enlace o cómo se generaba. Pero sabía que era un servicio de descanso web.

Este mes comencé a desarrollar una aplicación híbrida móvil, donde comencé a desarrollar en código nativo + jquery mobile para la interfaz y php + mysql para la parte de atrás. Tengo más o menos el mismo escenario aquí donde el usuario necesita suscribirse en un evento o no. Cuando presiona un botón para suscribirse a un evento específico, hago una solicitud posterior http con una llamada jaja y un archivo json en el cuerpo, a un script php específico y ese script escribe / actualiza / elimina en la base de datos en consecuencia.

La llamada se ve así:

 $.ajax({ type: "POST", url: "http://192.168.4.113/Server_CityInfo/subscribe.php", data: data, contentType: "application/json; charset=utf-8", //dataType: "json", success: function(response) { $.mobile.changePage( "dialog.html", { role: "dialog" } ); }, error: function(xhr, status, message) { alert("Status: " + status + "\nMessage: " + message); } }); 

Como ve, sí uso una url física, para apuntar a mi script php para tomar esa acción. Incluso la página html en la que se encuentra el usuario es una página física. Es una página como myUrl.com/eventX.

¿Eso significa que este servicio web que estoy construyendo no es uno de Descanso?

¿Cómo me señalaron el año pasado las URL lógicas y solo puedo apuntar a los scripts físicos de php? Sé que su servidor estaba en Java, ¿quizás por eso las URL no se ven físicas?

Y al final del día, digamos que tengo 100 eventos diferentes a los que el usuario puede suscribirse. Por supuesto, no haría 100 páginas html estáticas. PERO yo haría una página de 1 html que se generaría dinámicamente. Pero aún así, el enlace a esa página sería físico como mySite.com/event.html . La única forma que conozco de hacer que una URL parezca lógica es cuando tienes un archivo index.html dentro de una carpeta y myWebsite.com/myFolder a esa carpeta para que la url se vea como myWebsite.com/myFolder .

Entonces, la pregunta aquí es cómo construir una URL lógica y ¿esto es lo que hace que un servicio sea Restfull?

EDITAR


Otra cosa que leo mucho es que Rest usa urls que describen recursos y no operaciones. De nuevo, aunque no entiendo. Para todo en mi servicio web, uso Post Request. Quiero, por ejemplo, suscribir un usuario a un evento, hago una solicitud en la url my.server.com/subscribe.php y en el cuerpo de esta solicitud tengo un archivo json con la id del usuario y el event name .

Cuando deseo registrar un usuario, my.server.com/register.php una solicitud posterior en la url my.server.com/register.php y un json en el cuerpo con la id del usuario.

¿Es este escenario de descanso y si no es lo que falta?

Trataré de explicar REST como lo entiendo.

Los servicios web RESTfull se basan en dos factores:

  1. URLS: las URL deben basarse en los recursos. Me gusta: / app / students, / app / students / {id}
  2. MÉTODOS: el método define la operación que se realizará en la url. Me gusta

    • GET – Para obtener recursos
    • PUT – Para insertar un registro
    • POST – Para actualizar un registro
    • DELETE – Para borrar un registro.

Hay formas de lograr URLs tranquilas usando PHP. Vea la respuesta aquí.