リクエストを受け取りパラメータを解析する単純なメソッドを使用しようとしていますが、パラメータの数が正しくありません。私のメインでパラメータの解析に問題があります
私は、要求を行ってから呼び出す:ログインしたとき、次の値につながる
fmt.Println(parseParams(r, "http://localhost:8080", 2))
はメソッドで設定されている:
URL:/api/users
パラメータ:[ api users]
LEN(のparams):3
それは私が指定されていない1つの余分paramはあると思うかのようにそれはそうとより密接にそれを見て私がのparamsにAPIの前にtheresのスペースを見ることができますが、それは
func parseParams(req *http.Request, prefix string, num int) ([]string, error) {
url := strings.TrimPrefix(req.URL.Path, prefix)
params := strings.Split(url, "/")
if len(params) != num || len(params[0]) == 0 || len(params[1]) == 0 {
return nil, fmt.Errorf("Bad format. Expecting exactly %d params", num)
}
return params, nil
}
もちろんです:あなたはURLパスから先頭を取り除いていません。 – Volker
オフトピックのために閉じることに投票した人には、説明してください。 @Volker分割方法はそれを行うと思っていましたが、今はそれが何をしているのか正確に見ています。私はちょうど昨日、JavaScriptのバックグラウンドから来てGoを拾いましたので、学ぶべきことがたくさんあります! –
@Volker納得のいくように外出する必要はありません。私はドキュメントを読んできましたが、個人として私は例を試してもドキュメントでうまく学習しません。私は、それがどう対面で説明されるのかという概念を説明できる人々の答えによって最もよく学びます。あなたは分裂の仕組みを考えなかったのと同じように思うべきではありません。分かっていたと思っていました。 –