url.go
func URLPart(ctx context.Context, r *http.Request, i int) (context.Context, string, bool) {
	ctx, parts := URLParts(ctx, r)
	if len(parts) > i && i >= 0 {
		return ctx, parts[i], true
	}
	return ctx, "", false
}
func URLPart(ctx context.Context, r *http.Request, i int) (context.Context, string, bool) {
	ctx, parts := URLParts(ctx, r)
	if len(parts) > i && i >= 0 {
		return ctx, parts[i], true
	}
	return ctx, "", false
}
// URLPart returns a part of the url and caches it in the context