用代码生成器生成一个http请求的代码的时候,如果我们将 api 地址的 http:// 不添加,那么生成的代码是没法直接使用的。
基于上面的问题我们使用net/url
库来解决
下面我用一段示例来简单将一个没有http://的api地址补充完整
func normalizeAPI(api string) (string, error) {
if api == "" {
return "", nil
}
// 检查是否包含 "://",如果不包含,则添加默认的协议头(例如 http://)
if !strings.Contains(api, "://") {
api = "http://" + api
}
u, err := url.Parse(api)
if err != nil {
return "", err
}
if u.Host == "" {
return "", fmt.Errorf("API address is invalid: %s", api)
}
return u.String(), nil
}