首页 > 代码库 > 开发API完成,写个文档

开发API完成,写个文档

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=http://www.mamicode.com/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=http://www.mamicode.com/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 = http://www.mamicode.com/{}

  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完成,写个文档