caramba .. perdi a resposta .. esse google groups novo é muito confuso.. vou resumir
Route::set('rest', 'api/(<controller>(/<action>(/<id>)))')
->defaults(array(
'controller' => 'welcome',
'action' => 'index',
));
modificações na Linha 112 do arquivo Kohana_Request_Client_Internal
if ( ! $class->hasMethod('action_'.$action) && ! $class->hasMethod(strtolower($request->method()).'_'.$action))
{
throw new HTTP_Exception_404('The requested URL :uri was not found on this server.',
array(':uri' => $request->uri()));
}
if($class->hasMethod('action_'.$action))
{
$method = $class->getMethod('action_'.$action);
}
elseif(in_array($request->method(), array('GET', 'POST', 'PUT', 'DELETE'))) {
$method = $class->getMethod(strtolower($request->method()).'_'.$action);
}
//$method = $class->getMethod('action_'.$action);
$method->invoke($controller);
Meu controller tá assim ..
function action_index()
function get_index()
function post_save()
function put_update()
function delete_delete()
Mas sei que o padrão não é esse .. tem de ser orientado a substantivos ao invés de ações ..
O padrão seria ..
GET produto
GET produto/12
POST produto
PUT produto/12
DELETE produto/12
tem tbm a reconstrução do pensamento quando se tem muitos filtros .. Chamo produto por fornecedor ou fornecedor e produto vem junto?
já aprendi que devo chamar fornecedor .. GET fornecedor/12 e todos os produtos dele vem junto :D
mas isso é fácil de resolver ..
minha grande dificuldade agora é saber .. qual a verdadeira função de POST e PUT? Na internet cada um diz uma coisa ..
POST -> INSERT .. outros UPDATE .. outros INSERT e UPDATE (save)
e por aí vai .. ninguém sabe o padrão corretamente ..
aí .. rsrsrsrs... já que desvendei o inicio .. rsrs... peço que alguém leia o livro RESTful PHP WebServices que tá lá no 4shared e desvende o que PUT e POST realmente são obrigados a fazer e depois compartilhe conosco :D
Só fiz o Internal a pedido de um amigo .. mas to muito ocupado pra desvendar isso agora :D hehehe