func ValidateObject(data []byte, c *client.Client) error { var obj interface{} err := json.Unmarshal(data, &obj) if err != nil { return err } apiVersion, found := obj.(map[string]interface{})["apiVersion"] if !found { return fmt.Errorf("couldn't find apiVersion in object") } schemaData, err := c.RESTClient.Get(). AbsPath("/swaggerapi/api"). Prefix(apiVersion.(string)). Do(). Raw() if err != nil { return err } schema, err := validation.NewSwaggerSchemaFromBytes(schemaData) if err != nil { return err } return schema.ValidateBytes(data) }
func (c *clientSwaggerSchema) ValidateBytes(data []byte) error { version, _, err := c.t.DataVersionAndKind(data) if err != nil { return err } schemaData, err := c.c.RESTClient.Get(). AbsPath("/swaggerapi/api", version). Do(). Raw() if err != nil { return err } schema, err := validation.NewSwaggerSchemaFromBytes(schemaData) if err != nil { return err } return schema.ValidateBytes(data) }
func (c *clientSwaggerSchema) ValidateBytes(data []byte) error { version, _, err := runtime.UnstructuredJSONScheme.DataVersionAndKind(data) if err != nil { return err } if ok := registered.IsRegisteredAPIVersion(version); !ok { return fmt.Errorf("API version %q isn't supported, only supports API versions %q", version, registered.RegisteredVersions) } schemaData, err := c.c.RESTClient.Get(). AbsPath("/swaggerapi/api", version). Do(). Raw() if err != nil { return err } schema, err := validation.NewSwaggerSchemaFromBytes(schemaData) if err != nil { return err } return schema.ValidateBytes(data) }