Looker REST API
项目描述
Python Looker SDK 为与 Looker 服务器上的 Looker API 进行通信提供了便捷的方式。该库需要 python3.6+,并使用 typing 模块进行注释。
SDK 使用插件架构(也称为依赖注入)进行初始化,支持运行时特定的传输(目前仅支持 RequestsTransport)以及不同的 API 认证管理方法(AuthSession 和 OAuthSession)。方法和模型由 Looker 在 Looker API 规范中开发的新代码生成器生成。
请报告任何问题,并在报告中指明 SDK 语言。
基本用法
import looker_sdk
# For this to work you must either have set environment variables or created a looker.ini as described below in "Configuring the SDK"
sdk = looker_sdk.init40() # or init31() for the older v3.1 API
my_user = sdk.me()
# output can be treated like a dictionary
print(my_user["first_name"])
# or a model instance (User in this case)
print(my_user.first_name)
# input methods can take either model instances like WriteUser
sdk.create_user(
body=looker_sdk.models.WriteUser(first_name="Jane", last_name="Doe")
)
# or plain dictionaries
sdk.create_user(body={"first_name": "Jane", "last_name": "Doe"})
完整教程
在本20-30分钟的交互式教程中,从安装开始,一直创建一个功能性的微型应用程序。
本教程托管在 Google Colaboratory 上,是一个交互式在线笔记本。您可以通过点击下面的按钮直接在笔记本中跟随。
示例项目设置
安装 python 3.8。我们强烈推荐使用 pyenv 来安装不同版本的 python。Mac 用户应使用 homebrew 来安装 pyenv
brew install pyenv
Linux 用户应使用
curl https://pyenv.run | bash
将以下内容放入您的 shell 配置脚本中
export PATH=$PATH:$HOME/.pyenv/bin
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
否则,您的 python3.8 安装可能会损坏。请按照 https://github.com/pyenv/pyenv#basic-github-checkout 中的 剩余步骤 3 - 5 进行操作。
现在,您可以安装 python 3.8 了
pyenv install 3.8.2
我们将使用 pipenv(出色的虚拟环境管理器)来管理项目依赖项。
brew install pipenv
创建项目目录
mkdir looker-sdk-example
将 python3.8 设置为该目录的基本解释器
cd looker-sdk-example/
pyenv local 3.8.2
使用 pipenv 安装 looker_sdk
pipenv --python 3.8.2 install --pre looker_sdk
配置 SDK
SDK 支持通过以下方式配置
磁盘上的 .ini 文件
提供自己的 ApiSettings 类实现
。后者会覆盖前者。
注意:Looker SDK 的 .ini 配置是一个示例实现,旨在加快使用 Looker API 开发的 Python 应用程序的初始开发。有关使用包含 API 凭据的 .ini 文件在源代码仓库或生产环境中使用的警告,请参阅 保护您的 SDK 凭据 上的说明。
为了配置 SDK 客户端,创建一个“looker.ini”文件,以便在 client.setup() 期间引用
示例文件
[Looker] # Base URL for API. Do not include /api/* in the url. If hosted on GCP, remove the :19999 leaving just https://your.cloud.looker.com base_url=https://your.looker.com:19999 # API 3 client id client_id=YourClientID # API 3 client secret client_secret=YourClientSecret # Set to false if testing locally against self-signed certs. Otherwise leave True verify_ssl=True
注意:如果使用 Looker SDK 的应用程序将被提交到版本控制系统,请确保 忽略 looker.ini 文件,以免意外发布 API 凭据。
对于任何 .ini 设置,您都可以使用环境变量来代替。它采用以下形式 LOOKERSDK_<UPPERCASE-SETTING-FROM-INI>,例如 LOOKERSDK_CLIENT_SECRET
最后一种选择是提供自己的 ApiSettings 类实现。最简单的方法是从 api_settings.ApiSettings 继承,并重写 read_config 函数(如果合适,不要忘记调用 super().read_config(),以下为示例)。然而,您的类至少必须实现 api_settings.PApiSettings 协议。
import os
import looker_sdk
from looker_sdk import api_settings
class MyApiSettings(api_settings.ApiSettings):
def __init__(self, *args, **kw_args):
self.my_var = kw_args.pop("my_var")
super().__init__(*args, **kw_args)
def read_config(self) -> api_settings.SettingsConfig:
config = super().read_config()
# See api_settings.SettingsConfig for required fields
if self.my_var == "foo":
config["client_id"] = os.getenv("FOO_CLIENT")
config["client_secret"] = os.getenv("FOO_SECRET")
else:
config["client_id"] = os.getenv("BAR_CLIENT")
config["client_secret"] = os.getenv("BAR_SECRET")
return config
sdk = looker_sdk.init40(config_settings=MyApiSettings(my_var="foo"))
...
代码示例
变更日志
项目详情
下载文件
下载适用于您平台的应用文件。如果您不确定选择哪个,请了解有关安装包的更多信息。