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.

Responder a