dppx9253 2015-03-23 13:16
浏览 40
已采纳

转到url参数映射

Is there a native way for inplace url parameters in native Go?

For Example, if I have a URL: http://localhost:8080/blob/123/test I want to use this URL as /blob/{id}/test.

This is not a question about finding go libraries. I am starting with the basic question, does go itself provide a basic facility to do this natively.

  • 写回答

5条回答 默认 最新

  • dongxunhua2054 2015-03-23 22:54
    关注

    There is no built in simple way to do this, however, it is not hard to do.

    This is how I do it, without adding a particular library. It is placed in a function so that you can invoke a simple getCode() function within your request handler.

    Basically you just split the r.URL.Path into parts, and then analyse the parts.

    // Extract a code from a URL. Return the default code if code
    // is missing or code is not a valid number.
    func getCode(r *http.Request, defaultCode int) (int, string) {
            p := strings.Split(r.URL.Path, "/")
            if len(p) == 1 {
                    return defaultCode, p[0]
            } else if len(p) > 1 {
                    code, err := strconv.Atoi(p[0])
                    if err == nil {
                            return code, p[1]
                    } else {
                            return defaultCode, p[1]
                    }
            } else {
                    return defaultCode, ""
            }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题