Quando usar REST para manipular solicitações versus usar AJAX para manipular solicitações [fechado]


12

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?


6
Como você adivinhou, eles não são mutuamente exclusivos.
Seth Battin

2
você normalmente usaria uma API REST quando seu aplicativo é acessado por outro aplicativo
Gian Acuna

Não vejo compaixão entre os dois. O AJAX é uma aplicação de várias técnicas para implementar conteúdo dinâmico da Web, enquanto o REST é um estilo arquitetural.
jramoyo

2
@ downvoter --- por que o ódio?
21413 Kaushik

Respostas:


26

Eu posso fazer isso usando AJAX. Mas também posso fazer isso usando uma chamada REST.

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.

Meu problema é que eu realmente não entendo a diferença entre o REST e uma solicitação do navegador HTTP. (Também conhecido como envio de formulário). Eu olhei para definições formais de REST e parece uma solicitação HTTP.

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).

Então, por que tem um nome separado?

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).


6
O REST nem sempre precisa ser sobre HTTP. Qualquer protocolo pode ser REST se ajustar ao conjunto de métodos. Mas, no contexto de aplicativos da Web, será HTTP, é claro.
Jan Hudec

10
@ Jan Hudec: Existem exemplos reais do REST sendo usados ​​com outros protocolos?
22613 Michael Borgwardt

6

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.


Quando uso o Ajax para carregar uma parte da página da Web, essa solicitação do AJAX é uma chamada http para o servidor ... mais especificamente ... chama um método específico no meu servlet. é seguro dizer que, neste caso, o AJAX está usando o REST?
21413 Kaushik

Bem, isso depende do método que você está chamando. Se o método, por exemplo, atender às restrições de um RESTful WebService ( en.wikipedia.org/wiki/Representational_state_transfer ), você poderá dizer que sim.
Lesstat 26/07/2013

4

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.


A alternativa ainda é REST. O resto é definido pelo conjunto de operações, NÃO pelo protocolo usado.
Jan Hudec
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.