diff --git a/handler.go b/handler.go index 33d2e5846..bc6c625ef 100644 --- a/handler.go +++ b/handler.go @@ -108,7 +108,7 @@ func BuildRouters(handler *Handler) { func (h *Handler) populateValidators() { h.validators = map[string]*queryValidationSpec{} - h.validators["GetFragmentNodes"] = queryValidationSpecRequired("slice").Optional("index") + h.validators["GetFragmentNodes"] = queryValidationSpecRequired("slice", "index") h.validators["GetSliceMax"] = queryValidationSpecRequired().Optional("inverse") h.validators["PostQuery"] = queryValidationSpecRequired().Optional("slices", "columnAttrs", "excludeAttrs", "excludeBits") h.validators["GetExport"] = queryValidationSpecRequired("index", "frame", "view", "slice") diff --git a/handler_test.go b/handler_test.go index c7d2a80b7..063421667 100644 --- a/handler_test.go +++ b/handler_test.go @@ -1227,6 +1227,13 @@ func TestHandler_Fragment_Nodes(t *testing.T) { t.Fatalf("unexpected status code: %d", w.Code) } + // index is required + w = httptest.NewRecorder() + r = test.MustNewHTTPRequest("GET", "/fragment/nodes?slice=0", nil) + h.ServeHTTP(w, r) + if w.Code != http.StatusBadRequest { + t.Fatalf("unexpected status code: %d", w.Code) + } } // Ensure the handler can return expvars without panicking.