如何从共享的play.golang.org url中检索golang代码

sri*_*ini 3 go

我需要从play.golang.org链接中读取golang代码并保存到.go文件中.我想知道play.golang.org是否有任何公共API支持.我用Google搜索但没有提示.有没有人尝试类似的东西?

Cer*_*món 6

要获取共享游乐场程序的文本,请在URL中附加".go".例如,你可以得到程序的文本https://play.golang.org/p/HmnNoBf0p1zhttps://play.golang.org/p/HmnNoBf0p1z.go.

您可以通过将程序文本发布到https://play.golang.org/share来上传程序.响应是共享程序的ID.该程序将stdin上传到游乐场并将上传的程序的ID打印到stdout:

package main

import (
    "io"
    "log"
    "net/http"
    "os"
)

func main() {
    req, err := http.NewRequest("POST", "https://play.golang.org/share", os.Stdin)
    if err != nil {
        log.Fatal(err)
    }
    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        log.Fatal(err)
    }
    defer resp.Body.Close()
    io.Copy(os.Stdout, resp.Body)
}  
Run Code Online (Sandbox Code Playgroud)

假设上面的程序在upload.go中,则打印以下shell脚本HmnNoBf0p1z.

go run upload.go << EOF
package main

import (
    "fmt"
)

func main() {
    fmt.Println("Hello, playground")
}
EOF
Run Code Online (Sandbox Code Playgroud)

如果要使用浏览器将程序下载为文件,请将查询添加?download=true到.go URL.示例:https://play.golang.org/p/HmnNoBf0p1z.go?download = true