É uma "arquitetura de transmissão de dados sobre HTTP.
("Conjunto de idéias para utilizar HTTP para geração de APIs.")
Linguagem? Qualquer!
POST
requisita informações, com conteúdo.GET
requisita informações, sem conteúdo.(Ainda: PUT, DELETE, HEAD, TRACE, PATCH, OPTIONS)
Em ReST, métodos HTTP viram CRUD:
GET /recurso/
⇒ retorna todos os elementos do recurso.POST /recurso/
⇒ cria um novo elemento.PUT /recurso/
⇒ atualização em massa.DELETE /recurso/
⇒ remove todos os elementos do recurso.GET /recurso/id
⇒ retorna as informações do elemento com identificador "id".POST /recurso/id
⇒ proibído, use POST /recurso/
para criar elementos.PUT /recurso/id
⇒ atualiza as informações do elemento.DELETE /recurso/id
⇒ remove o elemento com identificador "id".GET /users/
⇒ Retorna a lista de todos os usuários.POST /users/
⇒ Cria um novo usuário.GET /users/1
⇒ Retorna as informações do usuário com id "1".PUT /users/1
⇒ Atualiza as informações do usuário "1".DELETE /users/1
⇒ Remove o usuário "1".GET /covert/?source=BRL&value=10&target=AUD
Qualquer formato, ReST não define um específico.
Fica a cargo da equipe decidir o melhor formato para a aplicação.
São utilizados os status HTTP
E assim por diante...
Problema:
ReST não define o que fazer em caso de conflito dos erros.
Exemplo:
Operação para adicionar um usuário à um grupo:
Normalmente é enviado um corpo junto com o erro.
Perguntas?