Pergunta

Existe uma maneira de executar ações REST no meio da execução de uma ação?Por exemplo, se eu executar GET /index.php/book/1 Posso receber o seguinte:

[{
    "id" : 1,
    "title" : "This is a book.",
    "owner_id" : 4
}]

Mas o que eu gostaria de fazer é antes de retornar o objeto acima, realizar um GET /index.php/user/4 então o resultado final é:

[{
    "id" : 1,
    "title" : "This is a book.",
    "owner" : {
        "id" : 4,
        "name" : "John Smith",
        "age" : 40
    }
}]
Foi útil?

Solução

Existe uma maneira simples de fazer isso com Restler, chamando internamente outro método de API diretamente, em vez de desperdiçar uma chamada para o servidor

class User{
    public function get($id, $includeOwner = true){
        $result = getUserFromDB($id)
        if($includeOwner){
            $result['owner'] = $this->get(getOwnerIdFromDB($id),false);
        }
    }
    return $result;
}

HTH

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top