/ / php Restler Routes - php, rotas, restler

Rotas do Resther do PHP - php, rotas, restler

Estou usando o Restler 2.0 e estou tentando adicionar uma nova rota com base no exemplo CRUD

$o["GET"]["author/:name/:email"]=array (
"class_name" => "Author",
"method_name" => "getLogin",
"arguments" =>
array (
"name"  => 0,
"email" => 1,
),
"defaults" =>
array (
0 => NULL,
1 => NULL,
),
"metadata" =>
array (
),
"method_flag" => 0,
);

quando eu faço a chamada url no navegador http://[host]/author/[name to pull]/[email to pull]

Estou tendo o erro a seguir:

{ "error": { "código": 404, "mensagem não encontrada" } }

meu código de autor foi atualizado com o seguinte método

function getLogin($name=NULL,$email=NULL) {
print "in author, getting login";
return $this->dp->getLogin($name,$email);
}

Estou perplexo

Respostas:

0 para resposta № 1

Roteamento automático de Luracast Restler

Primeiramente, routes.php é gerado automaticamente quando você executa o Restler no modo de produção

$r = new Restler(TRUE);

que será sobrescrito quando ligarmos

$r->refreshCache();

ou executá-lo no modo de depuração, por isso não deve ser codificado manualmente.

Restler 2.0 está usando mapeamento automático que é melhor explicado na atualização Exemplo CRUD.

A versão corrigida do seu método deve ser

function get($name=NULL,$email=NULL) {
print "in author, getting login";
return $this->dp->getLogin($name,$email);
}

que irá mapear para

GET /author/:email/:password

onde como seu método está mapeando atualmente para

GET /author/login/:email/:password

Roteamento personalizado do Luracast Restler

Observe também que você pode usar o comentário do PHPDoc para criar mapeamentos personalizados e adicionar mais de um. Por exemplo

/*
* @url GET /custom/mapping/:name/:email
* @url GET /another/:name/:email
*/
function get($name=NULL,$email=NULL) {
print "in author, getting login";
return $this->dp->getLogin($name,$email);
}

isso criará as rotas a seguir e desativará o roteamento automático para esse método.

GET /author/custom/mapping/:email/:password
GET /author/another/:email/:password