And*_*ray 6

要访问Jenkins REST API,您可以\api\json为许多URL 添加后缀,这将导致Jenkins返回您可以使用的JSON段(如果存在,否则为404).像json2csharp这样的工具在这种情况下是非常宝贵的.

消费方法

1.脚本

`curl -XGET 'http://myJenkinsInstance:8080/job/MyFolder/job/TestJob101/api/json' --user user.name:YourAPIToken`
Run Code Online (Sandbox Code Playgroud)

这将返回200或404,具体取决于作业是否已存在.

2.编程语言(如C#)

转到您的文件夹网址并添加api\json如下:

http://myJenkinsInstance:8080/job/MyFolder/job/TestJob101/api/json
Run Code Online (Sandbox Code Playgroud)

如果该文件夹存在,您将在浏览器中看到一些json,否则您将获得404.复制所有json并将其粘贴到json2csharp并生成C#.

你应该得到以下C#:

public class Action
{
    public string _class { get; set; }
}

public class Job
{
    public string _class { get; set; }
    public string name { get; set; }
    public string url { get; set; }
    public string color { get; set; }
}

public class PrimaryView
{
    public string _class { get; set; }
    public string name { get; set; }
    public string url { get; set; }
}

public class View
{
    public string _class { get; set; }
    public string name { get; set; }
    public string url { get; set; }
}

public class RootObject
{
    public string _class { get; set; }
    public List<Action> actions { get; set; }
    public string description { get; set; }
    public string displayName { get; set; }
    public object displayNameOrNull { get; set; }
    public string fullDisplayName { get; set; }
    public string fullName { get; set; }
    public string name { get; set; }
    public string url { get; set; }
    public List<object> healthReport { get; set; }
    public List<Job> jobs { get; set; }
    public PrimaryView primaryView { get; set; }
    public List<View> views { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

您应该将RootObject类重命名为上下文中更有意义的内容,以使代码更具可读性,例如FolderCheck

获得此代码后,您可以对同一URL进行HTTP GET调用.(注意:以编程方式替换文件夹名称将使其适用于您要使用的任何文件夹.)并使用Json.NET NuGet包对其进行反序列化:

var json = Adapter.Get(url, username, apiKey);
JsonConvert.DeserializeObject<FolderCheck>(json);
Run Code Online (Sandbox Code Playgroud)

如果json变量包含有效的json,那么您知道该文件夹存在.

在Jenkins LTS 2.60.3和2.90上测试.