API 没有文档时该怎么办

What to do when an API has no documentation

我目前正在尝试使用 REST API 将 Powershell 中的数据插入由某个插件创建的 Jira 自定义字段(JIRA 的简单链接)。不幸的是,没有关于所需语法的文档。 运行 到这个插件的人知道 commands/syntax 我需要使用 REST API (这是一个很小的插件所以如果有人看到它我会感到惊讶) ?如果做不到这一点,是否有人对发现如何将 APIs 与 no/bad 文档一起使用有任何建议,即制作 API return 命令和语法列表的一些标准方法(最好使用 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
        }
    }
}

自定义字段是插件创建的还是您自己创建的都没有关系。最后它是自定义字段,因此由于该插件没有很好的文档,我建议您继续使用 Atlassian 文档并根据官方 REST API 更新/编辑您的问题。您可以查看带有自定义字段的 Atlassian 示例 here

您需要做的是您只需要弄清楚自定义字段 ID 是什么,这很容易,方法是转到管理面板并单击自定义字段并从 URL 检查它(如果您不知道)不想去数据库。

我知道看到 API 没有文档会很痛苦,但至少你可以通过这种方式解决它。

设法让它适用于这个特定的插件。必须包括 ID 字段以及我想要 link 的问题的关键。我仍然很想知道是否有人有一些使用 API 的技巧,这些技巧有 no/bad 文档。

  "update":{
      "customfield_10500":[
         {
            "set":{
               "type":{
                  "name":"Asset PO",
                  "inward":"Asset",
                  "outward":"Purchase Order"
               },
               "outwardIssue":{
                  "key":""
                  "ID":""
               }
            }
         }
      ]
   }
}