首页 文章

通过REST API选择存储库

提问于
浏览
1

我正在尝试使用新的嵌入式可视化功能 . 我有一个iframe指向带有url的graphdb服务器:

http:// localhost:7200 / graphs-visualizations?uri = [...]&embedded

这工作正常,但仅适用于默认或以前选择的存储库 . 我无法找到一种方法来选择存储库而无需手动转到http://localhost:7200/

似乎存储库选择存储在cookie中,并且 X-GraphDB-Repository HTTP标头可用,但似乎没有任何内容可用于iframe .

有没有办法通过URL选择存储库? &repository= 会很完美 .

更多细节:我们有一个N个“学习”的应用程序,支持N个存储库(使用SPARQL查询),当用户选择一个研究,然后是一个uri时,我们想要显示一个Visual Graph iframe . 这适用于默认或以前选择的存储库,但当她进入另一项研究时,我们需要一种方法来透明地更新/选择Workbench应用程序中的存储库 .

我们目前看到的唯一解决方案是使用代理来动态设置cookie . 但这似乎有点过分了 .

2 回答

  • 2

    GraphDB Workbench有两种机制来控制当前选定的存储库 . 要说明此打开的“设置”>“存储库”页面并检查:

    (1)"Connect repository"图标(存储库列表中的第一个选项)通过将其存储在本地存储中来控制当前选定的存储库 . 检查what is the difference between local storage and a cookie.

    (2)“设置为默认存储库”图标(存储库列表中的最后一个选项)控制默认服务器存储库 . 当选择默认存储库时,服务器会假定将哪个存储库分派给所有HTTP请求,例如链接数据发布或类似于Visual Graph的情况 .

  • 0

    我们最终决定配置一个nginx代理解决方法 . 它运行良好,但绝对缺少 ?repository= 查询功能 .

    map $arg_repository $repo_cookie {
      "~^(?<repo>[0-9a-f]{32})$" "com.ontotext.graphdb.repository7200=$repo";
    }
    
    server {
      listen 7200;
      server_name localhost;
    
      location / {
        add_header Set-Cookie $repo_cookie;
        proxy_pass http://graphdb:7200;
      }
    }
    

相关问题