Controller x API Rest (Organização das URL's)

4 respostas
R

Qual a melhor maneira de organizar as URL’s Path no projeto?

Exemplo:

@Get
@Path("/observacao")
{
		//esse método seria usado para o usuario listar todos as observações (parte da API)
}
	
@Path( "/observacao" )
public void index() 
{
               //esse método é usado para a página index da tela de observações
}

Os dois métodos teriam por lógica a mesma URL, mas tem logicas diferentes.

Pensei em criar um “caminho” a mais nos paths da API.

@Get @Path("/api/observacao") { //esse método seria usado para o usuario listar todos as observações (parte da API) }

Tem uma maneira mais elegante?

4 Respostas

Lucas_Cavalcanti

o ideal é sempre pensar nas URIs como identificadoras de recurso e os métodos http como operações nos recursos…

logo vc pode fazer algo do tipo:

GET /observacoes ==> lista todas as observacoes
POST /observacoes ==> adiciona uma nova
GET /observacoes/{id} ==> lista uma específica

assim por diante

R

Sim… para a nomeação dos recursos REST, tenho utilizado este “padrão”.
Mas, neste caso, como fazer uma URI responder para dois lugares diferentes?

Quando eu digitar: http://endereco/aplicacao/observacoes
Deve listar a index da página observações, certo?

Assim como, quando digitar: http://endereco/aplicacao/observacoes/1
Deve aparecer o cadastro da observação com o código 1.

Mas, eu quero solicitar um JSON na mesma URL: http://endereco/aplicacao/observacoes/1
Fazendo com que me retorne o JSON da observação 1.

Se eu não me engano, o Ruby trabalha desta maneira, não?

G

Basta usar o Results.representation(): http://vraptor.caelum.com.br/javadoc/br/com/caelum/vraptor/view/Results.html#representation()

R

Valeu! Vou pesquisar sobre isso.

Criado 18 de abril de 2012
Ultima resposta 19 de abr. de 2012
Respostas 4
Participantes 3