Oi Tarsis,
Obs: Estou usando resources no singular ..
eu assumi que já fiz uma pesquisa e obtive os produtos. E a partir de um
produto, quero saber os fornecedores dele. Quem me fornece pen drivers?
Tenho uma relação N:N bidirecional entre produtos e fornecedores, então
poderia ir nas duas direções .. porém o REST me trouxe limitações.
Tenho 2 alternativas validas ..
carregar produto já com fornecedores .. é o mais correto
$fornecedores =
ORM::factory('produto')->with('fornecedores')->find($_POST['id']);
Buscar os fornecedores do produto. que foi o que sugeri através da
especificação de uma action extra REST em produto
produto/1/fornecedor
Já se eu fosse partir de fornecedores, não poderia utilizar a forma que
sugeriu ..
fornecedor/produto/ID .. pois o resource é fornecedor, não posso utilizar
ID de produto
fornecedor/ID .. não sei quem é o fornecedor.
Então, o correto seria ..
fornecedor?produto=1 .. agora o filtro está correto, posso buscar todos os
fornecedores do produto 1.
Na verdade ainda não sei se produto/1/fornecedor é correto. Tá apenas como
sugestão, ainda vou analisar as fontes para saber se posso fazer assim.
Em 26 de julho de 2012 02:10, Társis Lima <[email protected]> escreveu:
> @Felipe uma observação sobre o exemplo apresentado ...
>
> //GET produto/1/fornecedores :: todos os fornecedor de um produto
>
> ao que me parece é uma tentativa de aplicar um filtro ao fornecedor, certo?
>
> se o recurso a ser acessado é "fornecedores" o correto não seria algo
> como:
> *//GET fornecedores/produto/1/ ?*
>
> veja que seu problema é apenas com relação ao GET, pois acredito que para
> inserir alterar etc,
> você vai faze-lo diretamente no recurso e não através de outro.
>
> POST /fornecedores/1
> PUT /fornecedores/1
>
> Nesse caso por que não deixa que a própria rota se encarregue de decidir?
> se casar com o recurso(/id) cai na rota do rest senão cai na rota
> convencional onde o 2 param é o action e continua sendo um GET
>
>
> 1. <?
>
> 2. Route::set(
> 3. 'rest', 'api/<controller>(/<id>)'
> 4. , array('id' => '[0-9]+') )
> 5. ->defaults(array(
> 6. 'directory' => 'api',
> 7. 'controller' => 'rest',
> 8. 'action' => 'index',
> 9. ));
>
> 10. Route::set(
> 11. 'oterGetUrls', 'api/<controller>(/<action>(/<staff>))'
> 12. , array('staff' => '.*') )
> 13. ->defaults(array(
> 14. 'directory' => 'api'
> 15. ));
> 16.
> 17. ?>
>
>
> Ou em último caso criar uma rota especifica para o recurso desejado.
>
> --
> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
> Php" dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para [email protected].
> Para cancelar a inscrição nesse grupo, envie um e-mail para
> [email protected].
> Para obter mais opções, visite esse grupo em
> http://groups.google.com/group/kohana-php?hl=pt-BR.
>
--
http://felipebastosweb.com.br
http://twitter.com/felipebastosweb
--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos
Grupos do Google.
Para postar neste grupo, envie um e-mail para [email protected].
Para cancelar a inscrição nesse grupo, envie um e-mail para
[email protected].
Para obter mais opções, visite esse grupo em
http://groups.google.com/group/kohana-php?hl=pt-BR.