Что делать, если у API нет документации - PullRequest
0 голосов
/ 30 ноября 2018

В настоящее время я пытаюсь использовать REST API для вставки данных из Powershell в настраиваемое поле Jira, созданное определенным плагином (Простые ссылки для JIRA).К сожалению, нет документации по необходимому синтаксису.Кто-нибудь, кто сталкивался с этим плагином, знает команды / синтаксис, которые мне понадобятся для использования REST API (это довольно маленький плагин, поэтому я буду удивлен, если кто-нибудь еще видел его)?В противном случае, есть ли у кого-нибудь совет узнать, как использовать API без / плохой документации, т.е. какой-нибудь стандартный метод заставить API возвращать список команд и синтаксиса (предпочтительно с помощью powershell)?

У меня естьпопытался связаться с разработчиком, но не получил от них ответа.

Код, который я использую, здесь, если это полезно:

function Test-Upload(){
    Param()

        Process{
    $data=@"
    {
    "fields":
    {
        "project":
        {
            "key": "CCWASSET"
        },

        "summary": "Testing Linked Field",
        "issuetype":
        {
            "name": "Asset"
        },
        "description" : "Testing Linked Field"
    },
   "update":{
      "customfield_10500":[
         {
            "set":{
               "type":{
                  "name":"Asset PO",
                  "inward":"Asset",
                  "outward":"Purchase Order"
               },
               "outwardIssue":{
                  "key":""
               }
            }
         }
      ]
   }
}
"@
        return Jira-WebRequest -data $data

    }
}


function Jira-WebRequest(){
    Param(
        [Parameter(mandatory=$false)]$data,
        [Parameter(mandatory=$false)]$requesttype="issue",
        [Parameter(mandatory=$false)]$method="POST",
        [Parameter(mandatory=$false)]$ContentType='application/json'
    )
    Process{
        $path = $("/rest/api/2/$requesttype/")
        $Uri = ""
        [URI]::TryCreate([URI]::new($Settings.Jira.URL),"$path",$([ref]$Uri))

        $Params = @{
            ContentType =  $ContentType
            Body = $data #$(@{"vlan_id"=$vlanID;"port_id"="$portID";"port_mode"="$portMode"} | ConvertTo-JSON)
            Method = $method
            URI = $uri.AbsoluteUri
            Headers =  $JiraHeaders
            #WebSession = $Session
        }

        try{
            $result = Invoke-RestMethod @Params -Verbose
            return $result
        } Catch [System.Net.WebException] {
          $exception = $_.Exception
          $respstream = $exception.Response.GetResponseStream()
          $sr = new-object System.IO.StreamReader $respstream
          $ErrorResult = $sr.ReadToEnd()
          return $ErrorResult
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

удалось заставить его работать для этого конкретного плагина.Пришлось включить поле идентификатора, а также ключ к проблеме, на которую я хочу связать.Мне все еще было бы интересно узнать, есть ли у кого-нибудь советы по работе с API, в которых нет / плохая документация.

  "update":{
      "customfield_10500":[
         {
            "set":{
               "type":{
                  "name":"Asset PO",
                  "inward":"Asset",
                  "outward":"Purchase Order"
               },
               "outwardIssue":{
                  "key":""
                  "ID":""
               }
            }
         }
      ]
   }
}
0 голосов
/ 03 декабря 2018

Неважно, если пользовательское поле сделано плагином или вами.В конце это настраиваемое поле, так как плагин не имеет хорошей документации, я бы порекомендовал вам остаться с Atlassian Documentation и обновить / отредактировать свою базу вопросов на официальном REST API.Вы можете увидеть примеры Atlassian с пользовательскими полями здесь

Что вам нужно сделать, так это то, что вам просто нужно выяснить, что такое идентификатор пользовательского поля, и это будет легко, перейдя к панели администратора и нажавв настраиваемом поле и проверьте его по URL, если вы не хотите заходить в базу данных.

Я знаю, это больно видеть API без документов, но, по крайней мере, вы можете обойти это таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...