Ate onde estudei, o kohana nao tem nenhum modulo legal/completo de REST. Ate mesmo pq o Resquest existente no Core nao ajuda.
Se for fazer uma api separada, recomendo usar outro fw .. ai entra o slim, respect, e varios outros .. Em 25/07/2012 12:28, "felipe bastos" <[email protected]> escreveu: > Waldson .. > > Nao existe requisicao do tipo REST .. o que existe é tratar uma requisicao > http seguindo o modelo conceitual REST. > > Todas as requisicoes vao cair na sua rota REST. > > Quer experimentar, basta setar no header da requisicao http que é get, > post, delete ou put via curl ou ajax. > > REST é um modelo apenas conceitual .. nao é tipo de conexao como o ajax o > é. > Em 25/07/2012 12:20, "Waldson Patricio" <[email protected]> > escreveu: > >> Com essa classe Route tenho acesso à se a rota é de um rest ou não: >> $this->request->route()->is_rest_route() (Estende Request e adiciona um >> método is_rest que retorna esse valor) >> >> Lembrando que retornar um JSON ou XML se a requisição for ajax não tem >> nada a ver com API REST e sim com a arquitetura definida por você. >> >> 2012/7/25 felipe bastos <[email protected]> >> >>> Eu tava pensando e falando de diferenciar uma requisicao rest de uma nao >>> rest .. >>> >>> Mas, entendi .. se vai dedicar uma application so para api rest, blz. >>> >>> Pensando em rails .. to me baseando no rails .. ele processa tanto api >>> REST como controller/action/id na mesma application >>> Em 25/07/2012 11:55, "Waldson Patricio" <[email protected]> >>> escreveu: >>> >>> É pra diferenciar pelo método sim. Cada método tem sua finalidade (GET >>>> lista, POST bombril, PUT atualiza, DELETE bem, exclui). >>>> >>>> http://developer.mindtouch.com/REST/REST_for_the_Rest_of_Us >>>> >>>> Agora se foi feito por ajax, via browser isso não compete ao rest e sim >>>> a interface de acesso que voce está proporcionando. >>>> >>>> 2012/7/25 felipe bastos <[email protected]> >>>> >>>>> 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. >>>>> >>>> >>>> -- >>>> 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.
