Web Rest Api实践

API首页:http://127.0.0.1:8080/api/

项目API

Jenkinsfile 封装

  1. pipeline {
  2. agent any
  3. options {
  4. skipDefaultCheckout()
  5. // skipDefaultCheckout true
  6. }
  7. stages{
  8. stage("build"){
  9. steps{
  10. script {
  11. // buildID = GetBuildID("demo-pipeline-service", "lastBuild", "admin:admin" )
  12. // println(buildID)
  13. // result = GetBuildResult("demo-pipeline-service", buildID, "admin:admin")
  14. // println(result)
  15. buildID = GetBuildID("demo-pipeline-service", "lastBuild" )
  16. println(buildID)
  17. result = GetBuildResult("demo-pipeline-service", buildID )
  18. println(result)
  19. // int currentBuildId = Integer.parseInt("${BUILD_NUMBER}")
  20. // int previousBuildId = currentBuildId - 1
  21. // println(previousBuildId)
  22. // result = GetBuildResult("${JOB_NAME}", previousBuildId, "admin:admin")
  23. // println(result)
  24. }
  25. }
  26. }
  27. }
  28. }
  29. //request
  30. /*
  31. method: POST/GET/PUT
  32. apiurl: job/
  33. type: json/xml
  34. */
  35. def HttpRequest(method, apiurl, type){
  36. jenkinsserver = "http://192.168.1.200:8080/"
  37. withCredentials([string(credentialsId: 'cdce9f6f-bc15-4e19-aafa-6fd8273abe92', variable: 'authuser')]) {
  38. // some block
  39. response = sh returnStdout: true, script: "curl -X ${method} ${jenkinsserver}/${apiurl}/api/${type} -s -u ${authuser}"
  40. response = response.trim()
  41. result = readJSON text: "${response}"
  42. return result
  43. }
  44. }
  45. // 获取作业构建结果
  46. def GetBuildResult(jobName, buildId){
  47. // sh """
  48. // curl http://192.168.1.200:8080/job/${jobName}/${buildId}/api/json -u ${authUser} -o result.json -s
  49. // """
  50. // def response = readJSON file: "result.json"
  51. response = HttpRequest("GET", "job/${jobName}/${buildId}", "json")
  52. return response.result
  53. }
  54. // 获取作业的构建ID
  55. /*
  56. * type = [lastBuild| lastCompletedBuild | lastFailedBuild | lastStableBuild | lastSuccessfulBuild]
  57. */
  58. def GetBuildID(jobName, type){
  59. // sh """
  60. // curl http://192.168.1.200:8080/job/${jobName}/api/json -u ${authUser} -o result.json -s
  61. // cat result.json
  62. // """
  63. // def response = readJSON file: "result.json"
  64. response = HttpRequest("GET", "job/${jobName}", "json")
  65. println(response)
  66. return response[type].number
  67. }