此教程详细讲解metabase是如何嵌入页面的,并列出示例代码展示(后台是java)
本教程是在会使用metabase控制台前提下进行,如果不知道metabase是如何使用的,请看我这篇文章:metabase使用教程
我们首先通过控制台打开嵌入功能
一,嵌入仪表盘
首先进入到自己要嵌入的仪表盘的页面,点击红框中的按钮:
点击后选择第三个:
然后进入如下页面,图中我注释的都是很重要的,这里虽然是python语言,但红框里的东西在java后台一样需要注意,后边嵌入问题中不再详解,如果没有发布,我们需要先点击上方的发布,这样我们的客户端操作就完成了,剩下的就是代码实现了,代码见最后,下边注释中的仪表盘编号是表示你要拿的哪个仪表盘,每个仪表盘都有自己的编号
二,嵌入问题
问题也就是仪表盘中的单个图表,我们点击进入到自己要嵌入的问题页面,点击右下角分享按钮
剩下的操作和仪表盘一样,不再详细介绍,注意下图和上边仪表盘时的注释部分的不同
三,代码测试
java后端代码
下边是java后台需要给前端传递url,使前端进行嵌入,
注意:
- 好好看注释
- 下边分别是分享仪表盘和问题的url,实现可能稍微不同,但都可以
- 由于是举例,所以我这里边的仪表盘编号和问题编号是硬编码(也就是这两个接口只能传固定的仪表盘和问题),如果实际中建议前端传编号过来,然后编号作为变量来确定返回哪个编号的仪表盘或者问题
import org.springframework.security.jwt.Jwt;
import org.springframework.security.jwt.JwtHelper;
import org.springframework.security.jwt.crypto.sign.MacSigner;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@RestController
@RequestMapping("/dashboard")
public class MetabaseController2 {
private final String METABASE_SITE_URL = "http://ip:3000"; //你的metabase所处ip地址,metabase默认端口号3000
private final String METABASE_SECRET_KEY = ""; //秘匙
@GetMapping("/dashurl")
public DashboardParams dashAction() {
int round = Math.round(System.currentTimeMillis(