E lembrando .. Uma requisicao normal e uma rest sao identicas ..
REST é apenas conceitual .. nao da pra diferenciar pelo method .. O que pode fazer .. é tratar nos controllers algumas variaveis .. method, accept, formato de retorno, etc de forma mais amigavel. Em 25/07/2012 11:43, "felipe bastos" <[email protected]> escreveu: > 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.
