在本地开发期间访问 MindSphere APIs¶
本部分描述了2个在本地开发期间访问 MindSphere APIs 的选项并展示了如何为了此目的而配置 API 开发环境Postman。
使用服务凭证访问 MindSphere APIs¶
服务凭证的有效期是365天。他们可以被用来在 MindSphere 中创建访问令牌而无需登录到您的租户并捕获会话 cookie。但是,使用服务凭证生成的访问令牌具有管理范围,这意味着它不适合测试具有不同用户类型的应用。
先决条件¶
- 开发者租户上的 MindSphere 用户帐户。
- MindSphere 租户
mdsp:core:TenantAdmin
的管理角色。
创建服务凭证¶
- 请像这里描述的一样创建您的服务凭证。
-
以 Base64 格式编码服务凭证的组合。
-
请像下面展示的一样来组合凭证 ID 和密码。
{credentials_id}:{password}
-
以 Base64 格式编码结果的 string。
-
生成访问令牌¶
-
发送一个 HTTP 请求到 OAuth Authorization Service:
POST {tenantName}.piam.{region}.{mindsphere-domain}/oauth/token Accept: */* Content-Type: application/x-www-form-urlencoded Authorization: Basic {credentials-in-Base64-format}
-
从响应中的
access_token
字符段提取访问令牌并在 HTTP 请求的授权报头中将其作为承载令牌发送。
Postman 示例¶
-
创建一个将访问令牌存储在一个全局 variable 中的测试脚本:
-
发送 HTTP 请求。
```http tab="Template" POST {tenantName}.piam.{region}.{mindsphere-domain}/oauth/token
```http tab="Example" POST my-tenant.piam.eu1.mindsphere.io/oauth/token
-
定义以下报头:
Key 值 Accept */*
Content-Type application/x-www-form-urlencoded
Authorization Basic {credentials-in-Base64-format}
-
编写脚本:
```http tab="Template" pm.globals.set("{variable-name}", pm.response.json().access_token );
```http tab="Example" pm.globals.set("token", pm.response.json().access_token );
-
-
从 developer.mindsphere.io 下载要访问的API规范。
- 复制 YAML 文件的内容。
- 在 Postman 里, 选择**导入**和**复制原始文本**。
-
粘贴 YAML 文件的内容到编辑器并添加以下内容:
host: gateway.{region}.mindsphere.io
-
点击**导入**。
- 右键单击新集合并选择**编辑**。
- 选择**授权**选择项卡。
- 选择授权类型**承载**。
- 在**令牌**字符段中输入全局 variable 名称并点击**更新**。
-
运行您的步骤1中创建的脚本。这将发出访问令牌并将其存储在全局 variable 中。它自动用于在 HTTP 请求中对前面配置的 API 进行授权。
使用对话 Cookies 访问 MindSphere APIs¶
会话 cookie 的有效期最多为12小时并在不活动30分钟后过期。但是,通过分配用户特定的应用角色,可以为管理之外的用户测试应用的行为。
先决条件¶
- 开发者租户上的 MindSphere 用户账户。
- Cloud Foundry Command Line Interface (CF CLI)。
- 允许推送应用的 Cloud Foundry 角色,例如
SpaceDeveloper
。 - MindSphere 开发者角色,
mdsp:core:Developer
或者mdsp:core:DeveloperAdmin
。 - 在 MindSphere 上注册的简单应用。
部署和注册应用¶
- 部署应用到 Cloud Foundry 上并且像这里描述的一样,在 Developer Cockpit 中配置它。
-
配置应用角色和范围。
信息
确保添加访问各自 MindSphere APIs 所需的核心角色。
-
注册应用。
- 分配一个应用角色到您的用户。
生成用户凭证¶
- 使用网页浏览器登陆应用。
- 打开浏览器的开发者工具(按下 F12)。
- 导航到 cookies 部分。
Chrome: 应用 > Cookies
Firefox: 存储 > Cookies。 -
复制
SESSION
和XSRF-TOKEN
cookies。信息
这些用户凭证的有效期最多为12小时并在不活动30分钟后过期。通过在应用中实现 ping 功能,可以避免超时。
cURL 示例¶
以下的代码块显示了在 cURL 命令中设置用户凭证的示例脚本 ——— 占位符使用尖括号 <>
表示。
#!/bin/bash
TOKEN="<token-copied-from-browser>"
SESSION="<session-cookie-copied-from-browser>"
curl -vv \
-G \
--cookie "SESSION=${SESSION};XSRF-TOKEN=${TOKEN}" \
--data 'filter=dir*' \
-X GET \
https://<tenantId>-<appId>-<tenantId>.<regionId>.mindsphere.io/api/dataexchange/v3/directories/_PRIVATE_ROOT_ID
Postman 示例¶
-
输入要执行的 HTTP 请求,按照以下的模式:
```cmd tab="Template" https://{appName}.{region}.{mindsphere-domain}/{MindSphere-API}
```cmd tab="Example" https://my-app.eu1.mindsphere.io/api/iottimeseries/v3/assets
-
点击**发送**按钮下的 Cookies 链接。
- 输入应用域
my-tenant.eu1.mindsphere.io
,点击**添加**。 -
添加两个 cookies:
Key 值 SESSION SESSION={session-cookie-copied-from-browser}; path=/; domain=.my-app.eu1.mindsphere.io;
XSRF-TOKEN XSRF-TOKEN={token-copied-from-browser}; path=/; domain=.my-app.eu1.mindsphere.io;
-
发送 HTTP 请求。