我在how to create an issue in jira via rest api?
中找到了这个答案发布到此网址
https://<JIRA_HOST>/rest/api/2/issue/
此数据:
{ "fields": { "project": { "key": "<PROJECT_KEY>" }, "summary": "REST EXAMPLE", "description": "Creating an issue via REST API", "issuetype": { "name": "Bug" } } }
收到的答案将是您的问题的ID和密钥:
{"id":"83336","key":"PROJECT_KEY-4","self":"https://<JIRA_HOST>/rest/api/2/issue/83336"}
不要忘记授权。我使用了HTTP-Basic。
我相信其中描述了如何通过发布到网址来创建问题。
问题是,我不知道这是如何实际实现的。
如何对网址进行POST?
这与PHP帖子相同吗?
数据保存在哪里?
这是用什么语言编写的?
对于这样一个模糊的问题感到抱歉,这对我来说是全新的,我甚至不知道从哪里开始研究这个&gt; _&lt;任何具体的例子都会非常有用!
谢谢!
答案 0 :(得分:0)
数据部分以JSON格式编写,它只是数据结构的文本表示。它具有可读性,但实际上可以显示为:
{“fields”:{“project”:{“key”:“”},“summary”:“REST EXAMPLE”,“description”:“通过REST API创建问题”,“issuetype”:{“名称“:”Bug“}}}
要POST到URL并创建问题,您需要一个服务器端机制来首先验证aginst Jira,然后使用HTTP POST发送数据。 在PHP中,您可以使用cURL来POST或GET,或者将file_get_contents()用于GET。 PHP cURL doc在这里: http://php.net/manual/en/book.curl.php
例如,这是一个用于创建Jira问题的PHP函数(在身份验证之后):
public function createIssue(){
/*
Issue types:
1: Bug
3: Task
5: Sub-task
*/
$out = false;
$this->method = "POST";
$this->url = "http://10.50.25.64:8080/rest/api/2/issue/";
$this->data = array(
"fields" => array(
"project" => array("key" => $this->projectKey),
"summary" => $this->summary,
"environment" => $this->environment,
"description" => $this->description,
"issuetype" => array("id" => $this->issueType),
)
);
if (!empty($this->assignee)) $this->data['fields']['assignee'] = $this->assignee;
if (!empty($this->labels)) $this->data['fields']['labels'] = $this->labels;
foreach($this->customFields as $key => $val){
$this->data['fields'][$key] = $val;
}
$issue = $this->execCURL();
return $issue;
}
函数execCURL()接受PHP数组($ this-&gt; data)并使用PHP cURL发送它。
希望这有任何帮助!