目录
前言
一、API是什么??
二、API有什么用??
三、构造请求
1.请求URI
2.请求方法
四、请求消息体
五、调试
总结
前言
介绍调用IAM服务的获取用户Token如何调用API,该API获取用户的Token,Token可以用于调用其他服务时鉴权。
一、API是什么??
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
二、API有什么用??
API 的一个主要功能是提供通用功能集。 API同时也是一种中间件,为各种不同平台提供 数据 共享。 程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。 良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的可维护性和可扩展性。
三、构造请求
1.请求URI
我们日常调用api是使用一个URI地址
URI由如下部分组成:
{URI-scheme}://{Endpoint}/{resource-path}?{query-string}
https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
/v3/auth/tokens
参数 | 描述 |
URI-scheme | 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 |
Endpoint | 指定承载REST服务端点的服务器域名或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点获取。 |
resource-path | 资源路径,也即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 |
query-string | 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“?limit=10”,表示查询不超过10条数据。 |
2.请求方法
POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
这里使用POST:请求服务器新增资源或执行特殊操作。
四、请求消息体
请求消息体通常以结构化格式(如JSON或XML)发出
需要指定:Content-Type: application/json 定义请求体以json文件发出
其中username为用户名,domainname为用户所属的帐号名称,********为用户登录密码
username、domainname、******** 获取方法如下图所示:
1、华为云首页
2、 点击凭证
3、API凭证
username:IAM用户名
domainname:账号名
project:找到自己区域所属项目名称
案例:
POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
Content-Type: application/json
{
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"name": "username", #IAM用户名
"password": "********", #IAM密码
"domain": {
"name": "domainname" #用户所属的帐号名称
}
}
}
},
"scope": {
"project": {
"name": "xxxxxxxxxxxxxxxxxx" #所属项目名称
}
}
}
}
五、调试
在API Explorer中调试该接口。
也可通过下图方法找到
填写完用户密码后点击调试:
获取token成功:
总结
1、请求头 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
2、请求体
{
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"name": "username", #IAM用户名
"password": "********", #IAM密码
"domain": {
"name": "domainname" #用户所属的帐号名称
}
}
}
},
"scope": {
"project": {
"name": "xxxxxxxxxxxxxxxxxx" #所属项目名称
}
}
}
}
3、最后调试