De todo jeito teria que fazer rotas se tivesse elementos filhos. E se minha
api for apenas leitura ele teria mais métodos do que o necessário.

Mas a necessidade do Controller_Rest é evidente pra tratar parametros,
formatos etc.

2012/7/25 felipe bastos <[email protected]>

> Blz .. bote pra funcionar seguindo os conceitos de REST .. e vai perceber
> o problema ..
>
> É apenas sugestao ...
>
> Com funcao anonima vc pode tratar se a route esta de acordo com o method ..
>
> Um exemplo de Rota rest padrao
>
> Controller/id/action .. id e action opcionais ..
>
> Se nao tem id, pode ser get ou post
> Se tem id, pode ser get, post, put ou delete
> Se tem action, a action precisa existir e ser compativel com o metodo
>
> E por ai vai ..
> Em 25/07/2012 11:48, "Waldson Patricio" <[email protected]>
> escreveu:
>
>  Você acha que com funções anonimas fica mais simples?
>>
>> Posso criar e usar 4 rotas para as operações de toda minha api (se for só
>> o CRUD)
>>
>> Route::rest_set(HTTP_REQUEST::GET, 'list',
>> 'api/<controller>')->defaults(array('action' => 'list'));
>> Route::rest_set(HTTP_REQUEST::PUT, 'list',
>> 'api/<controller>')->defaults(array('action' => 'add'));
>> ...
>>
>> Achei simples.
>>
>>
>> 2012/7/25 felipe bastos <[email protected]>
>>
>>> Muito complicado criar uma rota para cada funcionalidade ..
>>>
>>> Tenta utilizando funcoes anonimas como segundo/terceiro parametro da
>>> route::set .. pode ser uma alternativa mais viavel ..
>>>
>>> Route::set(nome, controller/id, function(){})-default();
>>>
>>> Na function trata accept, format, etc .. seria legal ter um
>>> Controller_Rest com um render() mais propriado ..
>>>
>>> So nao tenho como tentar agora (so daqui a 15 dias kkk), se conseguirem
>>> .. posta ai
>>> Em 25/07/2012 11:23, "Waldson Patricio" <[email protected]>
>>> escreveu:
>>>
>>>  Olhem ai: http://pastebin.com/dGdybYsT <http://pastebin.com/vLpkq3Uj>
>>>>
>>>> Uso:
>>>>
>>>> Colocar essa classe em um modulo ou no application e na definição de
>>>> rotas:
>>>>
>>>> Route::rest_set(HTTP_Request::GET, 'rest_products_list',
>>>> 'api/products')
>>>>      ->defaults(array(
>>>>          'action'      => 'list',
>>>>          'controller'  => 'products'
>>>>      ));
>>>>
>>>> Route::rest_set(HTTP_Request::PUT, 'rest_products_add',  'api/products')
>>>>      ->defaults(array(
>>>>          'action'      => 'add',
>>>>          'controller'  => 'products'
>>>>      ));
>>>>
>>>> No controller products criar os métodos: action_get_list,
>>>> action_put_add para gerenciar as requisições. Se não quiserem o prefixo do
>>>> método (put, get, post e delete) é só remover o método defaults.
>>>>
>>>>
>>>> 2012/7/25 felipe bastos <[email protected]>
>>>>
>>>>> Vejam o respect/rest respect/relational e outros modulos do respect ..
>>>>>
>>>>> Ta sendo construido pelo alexandre gaigalas do phpbr
>>>>>
>>>>> E o controller pode vir como objeto
>>>>>
>>>>> App-get("rota", "NomeController");
>>>>>
>>>>> Por modulo, tlvz de pra integrar .. (respect/slim e outros)
>>>>> Em 25/07/2012 09:53, "felipe bastos" <[email protected]> escreveu:
>>>>>
>>>>> Sao os micro ou nano frameworks php ..
>>>>>>
>>>>>> Tem varios nesse estilo .. um deles, feito pela galera do symfony ..
>>>>>> da pra usar os mesmos componentes do symfony nele ..
>>>>>>
>>>>>> Eu criei em ko puro pq quero q a propria aplicacao funcione como api
>>>>>> .. e, toda a aplicacao roda via ajax ..
>>>>>>
>>>>>> Mas nada impede de criar outra aplicacao com slim so para api
>>>>>> Em 25/07/2012 09:45, "Waldson Patricio" <[email protected]>
>>>>>> escreveu:
>>>>>>
>>>>>>> Foi justamente isso que pensei. Estender o Route (RestRoute) e
>>>>>>> implementar esses métodos e usar a interface do Kohana mesmo:
>>>>>>>
>>>>>>> RestRoute::get('rota_id', 'api/products/<id>')->....
>>>>>>> RestRoute::post('rota_id', 'api/products/<id>')->....
>>>>>>> RestRoute::put('rota_id', 'api/products/<id>')->....
>>>>>>> RestRoute::delete('rota_id', 'api/products/<id>')->....
>>>>>>>
>>>>>>> e a função do controller (Que também terá um RestController) fazer
>>>>>>> as actions com prefixo do método:
>>>>>>>
>>>>>>> function action_get_products
>>>>>>>
>>>>>>> function action_put_products
>>>>>>>
>>>>>>>
>>>>>>> 2012/7/25 jose antoniel de lima Lima <[email protected]>
>>>>>>>
>>>>>>>> Tenho lindo sobre backbone js achei muito entereçante esse
>>>>>>>> framework agora achei esse Slim PHP e possivel configurar as rotas com 
>>>>>>>> ele
>>>>>>>> da seguinte maneira, achei bacana esse Slim talvez de para fazer algo 
>>>>>>>> com
>>>>>>>> as rotas do kohana aclopado do Slim, algo do tipo:
>>>>>>>>
>>>>>>>> Route::set('slim', array('Slim', 'route'));
>>>>>>>>
>>>>>>>> ai na função do Slim que executa a rota posso fazer retorna uma
>>>>>>>> rota com controller, action e id para que o kohana execute a ação, 
>>>>>>>> acho que
>>>>>>>> isso pode funcionar, vou ver quando iniciar o projeto e posto aki.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> //GET route
>>>>>>>> $app->get('/hello/:name', function ($name) {
>>>>>>>>     echo "Hello, $name";
>>>>>>>> });
>>>>>>>>
>>>>>>>> //POST route
>>>>>>>> $app->post('/person', function () {
>>>>>>>>     //Create new Person
>>>>>>>> });
>>>>>>>>
>>>>>>>> //PUT route
>>>>>>>> $app->put('/person/:id', function ($id) {
>>>>>>>>     //Update Person identified by $id
>>>>>>>> });
>>>>>>>>
>>>>>>>> //DELETE route
>>>>>>>> $app->delete('/person/:id', function ($id) {
>>>>>>>>     //Delete Person identified by $id
>>>>>>>> });
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Atenciosamente,
>>>>>>>> José Antoniel de Lima
>>>>>>>> Analista de Sistemas PHP5
>>>>>>>>
>>>>>>>>  --
>>>>>>>> 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.
>>>>>>>>
>>>>>>>
>>>>>>>  --
>>>>>>> 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.
>>>>>>>
>>>>>>  --
>>>>> 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.
>>>>>
>>>>
>>>>  --
>>>> 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.
>>>>
>>>  --
>>> 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.
>>>
>>
>>  --
>> 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.
>>
>  --
> 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.
>

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