登录
首页 >  Golang >  Go问答

获取查询参数列表的方法

来源:stackoverflow

时间:2024-03-15 12:30:28 315浏览 收藏

积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《获取查询参数列表的方法》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我有一个方法,它接受用户 id 列表并返回用户详细信息列表。

func listuser(userids []interface{}) (users []user, err error) {
    // query on db based on userid and return list of users
    return users, nil
}

现在我想为其公开一个 api 端点。因此,我尝试从我的 url 获取 userid。

func ListUserProfile(w http.ResponseWriter, r *http.Request) {
    // I know I can get the single value using 
         //r.URL.Query().Get("user-id")

    // but here List user takes []interface{} as a argument
    users, err := users.ListUser(userIDs)
}

有什么方法可以从我的 url 获取 userids 列表。


解决方案


解析表单并将表单中的 []string 复制到 []interface{}。 go 常见问题解答 explains why copy is required

r.ParseForm()
userIDs := make([]interface{}, len(r.Form["user-id"]))
for i, s := range r.Form["user-id"] {
   userIDs[i] = s
}

users, err := users.ListUser(userIDs)

(问题和评论对查询参数的名称不一致。请调整答案中的代码以匹配实际名称。)

好了,本文到此结束,带大家了解了《获取查询参数列表的方法》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>