有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用GOLang调用RESTAPI在BitBucket中创建存储库

BitBucket中是否有任何RESTAPI,可以从GoLang中调用,以便创建新的存储库。我可以获取现有的详细信息,但无法创建新的详细信息。记住卷曲不是必需的。好心的帮助,从一段时间以来一直坚持下去。有没有办法也通过JAVA实现呢?如果Java能够做到,那么我认为GoLang应该能够做到。建议


共 (2) 个答案

  1. # 1 楼答案

    通过查看他们的documentation,我发现了这个endpoint,它允许您使用他们的API创建回购协议

    可以从任何语言调用REST API端点

    下面是一个很好的tutorial,它解释了如何使用GO调用json API端点

  2. # 2 楼答案

    谢谢你们的帮助! 是的,我能够解决这个问题,一位同事指出了错误。 所需事项: 1.您应该可以完全访问bitBucket。 2.对于REST API,您应该具有正确的URL连接位置。注意:REST API url与direct url不同,并且版本正确

    相同的Go代码为:

    import (
        "encoding/json"
        "bytes"
        "fmt"
        "io/ioutil"
        "net/http"
    )
    
    func main() {
    
        url:=fmt.Sprintf("https://<Server BitBucket>/rest/api/1.0/projects/<PROJECT WHERE REPO TO BE CREATED>/repos");
       jsonData := map[string]string{"name":"<REPONAME>","scmID":"git","forkable":"true"}  
        jsonValue,_:=json.Marshal(jsonData)
        req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonValue))
        req.Header.Set("Content-Type", "application/json")
            req.SetBasicAuth("<USERNAME>", "<PASSWORD>")
        fmt.Println("++",req)
    
        client := &http.Client{}
        resp, err := client.Do(req)
        if err != nil {
            panic(err)
        }
    
        defer resp.Body.Close()
    
        fmt.Println("response Status:", resp.Status)
        fmt.Println("response Headers:", resp.Header)
        body, _ := ioutil.ReadAll(resp.Body)
        fmt.Println("response Body:", string(body))
        }
    

    这将给出201的响应,是的,它将被创建