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.