Na minha página da web, se eu desejar exibir menus suspensos dinâmicos (por exemplo, nomes de cidades com base no país selecionado), posso fazê-lo usando o AJAX. Mas também posso fazer isso usando uma chamada REST. Então, qual devo usar?
Meu problema é que eu realmente não entendo a diferença entre o REST e qualquer outra solicitação de navegador HTTP (também conhecido como envio de formulário). Eu olhei para as definições formais do REST e parece idêntico a uma solicitação HTTP. Então, como o REST é inerentemente diferente do AJAX?
Respostas:
Hum, não. Esses dois são completamente ortogonais. Se você quiser atualizar sua página com os dados que você tem que começar a partir de um servidor, você vai fazê-lo usando AJAX. Não há outro caminho. E essa chamada AJAX pode usar REST, ou qualquer outra coisa.
Uma chamada REST é sempre uma solicitação HTTP. Embora possa ser usado para manipular chamadas regulares do navegador (como envios de formulários) e retornar páginas HTML completas, geralmente é usado para manipular chamadas de API que retornam apenas dados (geralmente no formato JSON).
Como o REST é um estilo específico de uso do HTTP, é possível usá-lo como deveria ser usado originalmente, mas que a maioria das pessoas não "entendeu" e, portanto, raramente era usado por quase duas décadas.
Especificamente, REST significa codificar qual entidade você deseja recuperar ou manipular na própria URL (geralmente por meio de um ID) e qual ação você deseja executar nela no método HTTP usado (GET para recuperar, POST para alterar, PUT para criar , DELETE para excluir).
fonte
Bem, acho que primeiro você precisa entender que AJAX e REST não são realmente alternativas para o seu caso de uso. AJAX significa javascript assíncrono e XML; portanto, se você estiver usando javascript para carregar dados após a conclusão da solicitação do navegador, estará executando o AJAX.
REST, por outro lado, representa Representational State Transfer que, como Stefan Billet apontou, usa solicitações HTTP para transferir dados. Portanto, o REST é realmente uma maneira de fazer o AJAX. O SOAP seria outro, mas isso é offtopic para sua pergunta. Portanto, sua pergunta deve ser: "Qual tecnologia é melhor para o meu caso de uso?"
Nesse caso, eu recomendaria pensar na quantidade de dados usada em suas listas suspensas. Se você tiver apenas alguns elementos, poderá tê-los todos na sua página e usar javascript para mostrar os itens apropriados. Uma segunda opção poderia estar usando uma chamada REST com JSON como representação, porque é fácil de usar com javascript e muito leve, o que obviamente também significaria fazer AJAX.
fonte
O REST está usando os verbos HTTP GET, POST, PUT, DELETE para obter, respectivamente, inserir, atualizar e excluir recursos em um servidor. Por exemplo, GET com url: controller / customer / {id}
A alternativa é adicionar métodos a um controlador, como GetCustomerById (id), InsertCustomer (cliente), UpdateCustomer (cliente), DeleteCustomer (cliente). Isso é conhecido como abordagem RPC. Por exemplo, GET com url: controller / GetCustomerById? Id = {id}
Uma das diferenças é que uma API REST é meio previsível. Se você conhece o REST e o nome do recurso que deseja (por exemplo, Cliente), pode entrar imediatamente e usar o controlador REST com os verbos padrão.
Com uma abordagem RPC, você precisa saber quais métodos estão no seu controlador, que tipo de argumentos eles tomam etc. Essas assinaturas podem variar de controlador para controlador, de aplicativo para aplicativo.
O AJAX, por outro lado, é apenas uma maneira assíncrona de fazer as solicitações mencionadas acima, seja como uma chamada REST ou uma chamada RPC.
fonte