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.

Responder a