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.

Responder a