本页介绍了如何生成和配置基本 Looker 扩展程序模板,然后您可以向该模板添加功能。
如需创建新的 Looker 扩展程序,您需要执行以下任务:
以下程序展示了如何构建上述元素。
为扩展程序配置 Looker
Looker 扩展程序均需要一个 LookML 项目,其中包括要运行的模型文件和清单文件。
为您的扩展程序创建一个空白项目。
在新项目中,使用 Looker IDE 中文件浏览器顶部的
+
创建模型文件。系统会使用
connection
参数和include
参数生成新模型文件:将
connection
参数中的connection_name
替换为实例上的有效数据库连接的名称。此扩展程序需要有效的模型文件,因为 Looker 权限数据是通过 LookML 模型访问的。如需管理扩展程序的访问权限,您必须将扩展程序与有效的 LookML 模型相关联,并授予用户访问该模型的权限。模型文件修改完毕后,点击保存更改。由于您的扩展程序不需要视图文件,因此请删除
include: "/views/*.view.lkml"
参数或在行开头添加#
字符以作为行注释。将include: "/views/*.view.lkml"
参数保持原样会导致 LookML 验证器生成错误。在 Looker IDE 中,使用文件浏览器顶部的
+
创建项目清单文件。项目清单文件最初会为空,但在此过程中,您需要将生成的内容复制到将包含
application
参数的项目清单文件中。application
参数为扩展程序提供标签,告知 Looker 在哪里可以找到该扩展程序的 JavaScript,并提供该扩展程序的使用权列表。使用权定义了扩展程序可以访问的 Looker 资源。此扩展程序将无法访问 Looker 资源,除非相应权限列于使用权中。不过,您可以暂时让清单文件保持原样,因为在此进程的后面部分,您将复制文件的其余部分。
为新项目配置 Git 连接。
您可以通过点击 Looker IDE 右上角的 Configure Git(配置 Git)按钮,或使用 Project Configuration 页面(如设置和测试 Git 连接文档页面)访问 Configure Git(配置 Git)页面。
为扩展程序设置项目并将其连接到 Git 后,您就可以生成扩展程序模板文件了。
生成扩展程序模板文件
您可以通过以下两种方式生成扩展程序模板代码文件:
这两个进程都需要 Yarn,因此请确保您已安装 Yarn。
使用 create-looker-extension
创建扩展程序模板
create-looker-extension
实用程序会创建一个基本的 Looker 扩展程序,其中包含所有必要的扩展程序文件和依赖项。然后,您可以以此为基础,添加其他代码和功能以完成您的扩展程序。
要生成扩展程序模板,请执行以下操作:
运行
create-looker-extension
实用程序,注意将<extension_name>
替换为您的扩展程序的名称:yarn create looker-extension <extension_name>
请确认扩展程序的名称,或提供其他名称,然后选择希望用于构建扩展程序的语言和框架:
然后,
create-looker-extension
实用程序将使用您指定的框架填充基本模板,并将所有生成的文件放入使用扩展程序名称的新目录中:进入为扩展程序创建的目录:
cd <extension_name>
安装扩展程序依赖项:
yarn install
启动开发服务器:
yarn develop
该扩展程序现在正在
http://localhost:8080/bundle.js
本地运行并提供 JavaScript。您的扩展程序目录中是
manifest.lkml
文件。复制此文件的内容。在 LookML 项目中,将
manifest.lkml
的内容粘贴到项目清单文件中:点击 Save Changes(保存更改)以保存项目清单文件。
在 LookML IDE 中,点击 Validate LookML,然后依次点击 Commit Changes & Push 和 Deploy to Production。
使用浏览器的重新加载函数重新加载 Looker。
在 Looker 的浏览菜单中,您会看到新扩展程序的名称:
从浏览菜单中选择您的扩展程序,以查看其输出。
如果您的管理员已启用增强型导航 实验室功能,则扩展程序会显示在新的增强型左侧导航面板的应用部分。
克隆 Git 代码库以创建扩展程序模板
Looker 维护着一个 Git 代码库,这个代码库位于 https://github.com/looker-open-source/extension-examples 下,其中包含多个扩展程序模板。如果您要使用其中某个示例,请前往该示例的代码库,然后按照以下说明操作。
此过程需要 Yarn,因此请确保您已安装 Yarn。
在本地命令行中,使用以下命令克隆 Git 代码库:
git clone git@github.com:looker-open-source/extension-examples.git
进入包含您想在系统上安装的模板的目录。在本示例中,我们将使用 React 和 JavaScript“Hello World”扩展程序:
cd extension-examples/react/javascript/helloworld-js
安装扩展程序依赖项:
yarn install
您可能需要更新节点版本,或使用节点版本管理器更改节点版本。
您的扩展程序目录中是
manifest.lkml
文件。复制此文件的内容。在 LookML 项目中,将
manifest.lkml
的内容粘贴到项目清单文件中:点击 Save Changes(保存更改)以保存项目清单文件。
点击 LookML IDE 右上角的 Validate LookML,然后依次点击 Commit Changes & Push 和 Deploy to Production。
在您的终端中,启动开发服务器:
yarn develop
该扩展程序现在在清单文件的
url
参数中指定的本地开发服务器上运行并提供 JavaScript:http://localhost:8080/bundle.js
。使用浏览器的重新加载函数重新加载 Looker。
在 Looker 的浏览菜单中,您会看到新扩展程序的名称,该名称由项目清单文件中的
label
参数决定:从浏览菜单中选择您的扩展程序,以查看其输出。
如果您的管理员已启用增强型导航 实验室功能,则扩展程序会显示在新的增强型左侧导航面板的应用部分。
修改附加信息
创建基本扩展程序后,您可以修改相应的 JavaScript 或 TypeScript 文件,或者向其中添加代码。
您的扩展程序目录下的 src
目录包含可添加代码的源文件。在上面的示例中,对于 React 和 JavaScript“Hello World”模板,该文件名为 HelloWorld.js
。在此文件中修改或添加代码,将会修改或向扩展程序中添加函数。
下面是 React 和 JavaScript HelloWorld.js
文件的输出:
import React, { useEffect, useState, useContext } from 'react'
import { Space, ComponentsProvider, Text } from '@looker/components'
import { ExtensionContext } from '@looker/extension-sdk-react'
export const HelloWorld = () => {
const { core40SDK } = useContext(ExtensionContext)
const [message, setMessage] = useState()
useEffect(() => {
const initialize = async () => {
try {
const value = await core40SDK.ok(core40SDK.me())
setMessage(`Hello, ${value.display_name}`)
} catch (error) {
setMessage('Error occured getting information about me!')
console.error(error)
}
}
initialize()
}, [])
return (
<>
<ComponentsProvider>
<Space p="xxxxxlarge" width="100%" height="50vh" around>
<Text p="xxxxxlarge" fontSize="xxxxxlarge">
{message}
</Text>
</Space>
</ComponentsProvider>
</>
)
}
在上面的示例中,您可以通过更改一行中的文本来更改扩展程序的文本输出:
setMessage(`Hello, ${value.display_name}`).
请注意,在添加功能时,您可能需要在项目清单文件的
application
参数中修改已授予扩展程序的使用权。