开发API完成,写个文档

时间:2021-10-09 08:43:06

Jira对接Prism开发API指南

部门

 

证系统运维团队

 

文档制作人

 

陈刚()

 

时间

 

2017-04-05

 

版本

 

第一版

 

目录

目的... 1

通例:... 1

认证... 2

新建版本单... 2

获取指定版本单的发布单信息... 3

 

目的

为了提升工作效率,打通jira和prism之间的联系,,让软件项目管理人员可以在jira上新建版本单,并跟踪发布进度,特在prism上制作相关API供jira调用。

通例:

l  Prism的web址会因环境不同或构架变更而发生变更,jira端须提供自定义prism的api网址。

l  文档仅以根目录演示相关url。

l  演示代码主要以python为主,如果为javascript,会特别说明。

l  jira端可以自行构造认证表单,将获取的token保留。或是提供用户自行配置token。

认证

认证

 

成功

 

失败

 

URL

 

/api/api-token-auth/

 

请求方法

 

POST

 

请求参数

 

Username, password

 

状态码

 

200

 

400

 

返回消息

 

Json对象,

具体消息见demo

 

Json对象,

具体消息见demo

 

Demo:

url = "http://127.0.0.1:8000/api/api-token-auth/"

payload = {‘username‘: ‘kevsin‘, ‘password‘: ‘xxx‘}

r = requests.post(url, data=payload)

print r.status_code #成功200 失败 400

print r.text

#成功输出:{"token":"d92bbea2a4b3bb1235badf87490ba7c980e9ebab"}

#失败输出:{"non_field_errors":["无法使用提供的认证信息登录。"]}

 
新建版本单

新建版本单

 

成功

 

失败

 

URL

 

/api/versionpool/

 

请求方法

 

POST

 

请求参数

 

Name, site_name

 

状态码

 

201

 

400

 

返回消息

 

Json对象,

具体消息见demo

 

Json对象,

具体消息见demo

 

***为保证prism内版本单的名单唯一性,Prismw会自动为jira传过来的版本单号加上项目名称,以此作为prism的版本单名称

Demo:

url = "http://127.0.0.1:8000/api/versionpool/"

mytoken="d92bbea2a4b3bb1235badf87490ba7c980e9ebab"

headers={‘Authorization‘: ‘Token {}‘.format(mytoken)}

payload = {‘name‘: ‘1.78.5‘, ‘site_name‘: ‘SIS-OMM‘ }

r = requests.post(url, data=payload, headers=headers)

print r.status_code #成功200 失败 400

print r.text

#成功输出:{"create_user":"kevin","message":"创建版本单成功!","result":"success","name":"SIS-OMM-1.78.5"}

#site_name不存在时输出:{"create_user":"kevin","message":"项目名不存在!","result":"failed","name":"SIS-OwMM-1.78.5"}

#已有相同版本单时输出:{"create_user":"kevin","message":"已存在相同版本单","result":"failed","name":"SIS-OMM-1.78.5"}

 

以下提供一个采用vue.js 2的前端框架时,创建版本单的javascript代码供参考:

submit: function() {

var selected = this.selected; // 这里才是你的表单数据

var versionNo = this.versionNo; // 这里才是你的表单数据

var headers = {}

var data = {}

data.name = versionNo //塞入post数据

data.site_name = selected //塞入post数据

headers.Authorization = ‘Token ‘ + this.token; //设定html的header头信息

this.$http.post(this.apiVersionListUrl, data, {headers: headers}) //发送post请求

.then(function(response){

this.result = this.versionNo + "版本新增成功!"

console.log("right!")

}, function(response){

console.log(response);

console.log("wrong!");

});

 
获取指定版本单的发布单信息

获取指定版本单的发布单

 

成功

 

失败

 

URL

 

/api/deploypool/

 

请求方法

 

GET

 

请求参数

 

Site_name, version_name

 

状态码

 

200

 

200

 

返回消息

 

返回见demo

 

返回为空列表[]

 

Demo:

url = "http://127.0.0.1:8000/api/deploypool/?site_name=SIS-M&version_name=SIS-M-1.78.5"

r = requests.get(url)

print r.text

#如果传递参数正确且相关版本单内有发布单,输出如下:

[

{

"id": 140,  //发布单ID

"name": "20170308163803BR", //发布单名称

"site_name": "SIS-OMM", //发布单所属项目

"version_name": "SIS-OMM-1.78.5", //发布单所属版本单

"app_name": "SIS-OMM-JTC-APP-STATIC", //发布单所属组件

"order_no": 4, //发布单顺序

"deploy_status": "BUILD", //发布单状态

"deploy_progress": null, //发布单部署进度

"create_user": "kevin", //操作用户

"change_date": "2017-03-08T16:38:04" //操作时间

},

{

"id": 136,

"name": "20170302144843TA",

"site_name": "SIS-OMM",

"version_name": "SIS-OMM-1.78.5",

"app_name": "SIS-OMM-SQL",

"order_no": 8,

"deploy_status": "DR",

"deploy_progress": "待发布",

"create_user": "kevin",

"change_date": "2017-03-06T15:16:13"

}

]

 

开发API完成,写个文档