gpt4 book ai didi

go - API 发现自己的 URL Golang

转载 作者:IT王子 更新时间:2023-10-29 02:16:18 27 4
gpt4 key购买 nike

我在 Go 中创建了一个 API,它可以通过 ElasticSearch 搜索或直接访问 Element,然后将一些数据添加到 JSON 负载,并将其返回给用户。搜索时,我返回一个 Elements 列表,如果用户希望获得更多信息,我希望能够为特定 Element 提供一个直接 URL .

但是我无法确定应用程序应该如何确定自己的 URL。如果不能,URL 本身的合理替代方案是什么?

将 net/http 包和 gorilla/mux 用于基于网络的东西。

最佳答案

您可以通过按名称查找路由并使用 Route.URL 生成 url 来“反转”gorilla/mux url

您需要为您的路线命名,以便您可以通过 Router.Get 轻松查找它。 .

r := mux.NewRouter()
r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler).
Name("article")

一旦有了路由,就可以通过将参数传递给 URL 来构建 url

url, err := r.Get("article").URL("category", "technology", "id", "42")
// "/articles/technology/42"

请注意,如果您希望自动插入主机,则需要在您的路由中定义它:

r := mux.NewRouter()
r.Host("{subdomain}.domain.com").
HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler).
Name("article")

// url.String() will be "http://news.domain.com/articles/technology/42"
url, err := r.Get("article").URL("subdomain", "news",
"category", "technology",
"id", "42")

关于go - API 发现自己的 URL Golang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28770363/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com