En mi página web, si deseo mostrar menús desplegables dinámicos (por ejemplo, nombres de ciudades basados en el país seleccionado), puedo hacerlo usando AJAX. Pero también puedo hacerlo usando una llamada REST. Entonces, ¿cuál debo usar?
Mi problema es que realmente no obtengo la diferencia entre REST y cualquier otra solicitud de navegador HTTP (también conocido como envío de formulario). He mirado las definiciones formales de REST y parece idéntico a una solicitud HTTP. Entonces, ¿cómo es REST inherentemente diferente de AJAX?
Respuestas:
Mmm no. Esos dos son completamente ortogonales. Si desea actualizar su página con los datos que debe obtener de un servidor, lo hará utilizando AJAX. No hay otra manera. Y esa llamada AJAX puede usar REST, o algo más.
Una llamada REST es una solicitud HTTP, siempre. Aunque se puede usar para manejar llamadas regulares del navegador (como envíos de formularios) y devolver páginas HTML completas, generalmente se usa para manejar llamadas API que solo devuelven datos (generalmente en formato JSON).
Debido a que REST es un estilo específico de usar HTTP, podría decirse que lo usó como estaba destinado originalmente para ser utilizado, pero que la mayoría de la gente no "entendió" y, por lo tanto, rara vez se usó durante casi 2 décadas.
Específicamente, REST significa codificar qué entidad desea recuperar o manipular en la propia URL (generalmente a través de una ID) y codificar qué acción desea realizar en él en el método HTTP utilizado (GET para recuperar, POST para cambiar, PUT para crear , BORRAR para borrar).
fuente
Bueno, creo que primero debe comprender que AJAX y REST no son realmente alternativas para su caso de uso. AJAX significa JavaScript asincrónico y XML, por lo que si está utilizando JavaScript para cargar datos después de que la solicitud del navegador haya finalizado, está haciendo AJAX.
REST, por otro lado, significa Transferencia de estado representacional que, como señaló Stefan Billet, utiliza solicitudes HTTP para transferir datos. Entonces REST es en realidad una forma de hacer AJAX con. SOAP sería otro, pero este es un tema para su pregunta. Entonces, su pregunta debería ser: "¿Qué tecnología es la mejor para mi caso de uso?"
En este caso, recomendaría pensar en la cantidad de datos utilizados en sus menús desplegables. Si solo tiene algunos elementos, podría tenerlos todos en su página y simplemente usar javascript para mostrar los apropiados. Una segunda opción podría ser usar una llamada REST con JSON como representación porque es fácil de usar con javascript y muy liviano, lo que por supuesto también significaría hacer AJAX.
fuente
REST está utilizando los verbos HTTP GET, POST, PUT, DELETE para obtener, insertar, actualizar y eliminar recursos en un servidor respectivamente. Por ejemplo, GET with url: controller / customer / {id}
La alternativa es agregar métodos a un controlador como GetCustomerById (id), InsertCustomer (cliente), UpdateCustomer (cliente), DeleteCustomer (cliente). Esto es lo que se conoce como un enfoque RPC. Por ejemplo, OBTENER con url: controller / GetCustomerById? Id = {id}
Una de las diferencias es que una API REST es predecible. Si conoce REST y conoce el nombre del recurso que desea (por ejemplo, Cliente), puede saltar de inmediato y usar el controlador REST con los verbos estándar.
Con un enfoque RPC, debe saber qué métodos hay en su controlador, qué tipo de argumentos toman, etc. Estas firmas pueden variar de un controlador a otro, de una aplicación a otra.
AJAX, por otro lado, es solo una forma asíncrona de colocar las solicitudes antes mencionadas, ya sea como una llamada REST o una llamada RPC.
fuente