Estou tentando buscar algumas visualizações com o módulo services_views . Infelizmente, continuo recebendo a resposta: "404: Não encontrado: a exibição na exibição my_view_name não foi encontrada".
Estou usando as Visualizações 3 e defini para testar uma exibição com um ID de exibição de 'página'. (o ID de exibição padrão não é mais "padrão")
Eu sei que tenho que passar o argumento display_id, mas simplesmente não consigo fazê-lo funcionar.
Aqui estão as chamadas que estou tentando usar:
http://www.mywebsite.com/rest/views/my_view_name.json?display_id="page"
http://www.mywebsite.com/rest/views/my_view_name.json?display_id=page
http://www.mywebsite.com/rest/views/my_view_name.json?parameters[display_id]="page"
http://www.mywebsite.com/rest/views/my_view_name.json?args[display_id]="page"
Na definição de recurso para o serviço, é claro que display_id deve ser passado como argumento.
'args' => array(
'view_name' => array(
'name' => 'view_name',
'type' => 'string',
'description' => 'The name of the view to get.',
'source' => array('path' => '0'),
'optional' => FALSE,
),
'display_id' => array(
'name' => 'display_id',
'type' => 'string',
'description' => 'The display ID of the view to get.',
'source' => 'param',
'optional' => TRUE,
'default value' => 'default',
),...
Existe alguém que conseguiu fazer isso funcionar?
Obrigado.
Respostas:
Na página do Drupal.org deste módulo, alguém sugere o seguinte para a versão 7.x.
Eu tenho tentado fazer isso funcionar no 6.x, mas ainda não consegui.
fonte
Se você possui o Firefox instalado ou o Firebug, pode consultar a fonte HTML para obter o display_id. Veja esta captura de tela (e ignore o argumento da minha página!):
fonte
Enfrentei o mesmo problema com services_views para passar argumentos para uma exibição chamada por solicitação de serviços e resolvi-o aplicando um patch no módulo sem que ele não funcionasse.
Aqui está um patch diff do meu projeto
Não me lembro do link para o patch, mas isso pode ajudar a ver os serviços exibem problemas de argumentos
Se você criou uma exibição de serviço para a visualização, ela seria vista como um recurso.
espero que ajude
fonte
Provavelmente, você quer
display_id=page_1
. Odisplay_id
parâmetro deve ser o ID interno do display. AFAIK, a exibição padrão sempre tem o ID 'padrão'.Os IDs de qualquer página adicional exibida que você criar não são visíveis na interface do usuário do Drupal 6, mas você pode descobri-los fazendo uma exportação na sua exibição e observando o código resultante.
Cada exibição é criada com uma chamada para
$view->new_display()
onde o terceiro parâmetro é o ID (consulte views_db_object :: new_display ).fonte