Documentation ¶
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Validate ¶
Validate checks whether the descriptor the descriptor is valid against the passed-in profile/registry. If the validation process generates multiple errors, their messages are coalesced. It is a syntax-sugar around getting the validator from the registry and coalescing errors.
Example ¶
resource := map[string]interface{}{"name": "foo", "path": "foo.csv"} fmt.Print(Validate(resource, "data-resource", MustInMemoryRegistry()))
Output: <nil>
Types ¶
type DescriptorValidator ¶
DescriptorValidator validates a Data-Package or Resource descriptor.
func New ¶
func New(profile string, loaders ...RegistryLoader) (DescriptorValidator, error)
New returns a new descriptor validator for the passed-in profile.
type Registry ¶
type Registry interface {
GetValidator(profile string) (DescriptorValidator, error)
}
Registry represents a set of registered validators, which could be loaded locally or remotelly.
func MustInMemoryRegistry ¶
func MustInMemoryRegistry() Registry
MustInMemoryRegistry returns the local cache registry, which is shipped with the library. It panics if there are errors retrieving the registry.
func NewRegistry ¶
func NewRegistry(loaders ...RegistryLoader) (Registry, error)
NewRegistry returns a registry where users could get descriptor validators.
Example ¶
registry, _ := NewRegistry(LocalRegistryLoader(localRegistryPath, true /* in memory only*/)) validator, _ := registry.GetValidator("data-resource") fmt.Println(validator.Validate(map[string]interface{}{"name": "res1", "path": "foo.csv"}))
Output: <nil>
type RegistryLoader ¶
RegistryLoader loads a registry.
func FallbackRegistryLoader ¶
func FallbackRegistryLoader(loaders ...RegistryLoader) RegistryLoader
FallbackRegistryLoader returns the first passed-in registry loaded successfully. It returns an error if there is no successfully loaded registry.
func InMemoryLoader ¶
func InMemoryLoader() RegistryLoader
InMemoryLoader returns a loader which points tothe local cache registry.
func LocalRegistryLoader ¶
func LocalRegistryLoader(localRegistryPath string, inMemoryOnly bool) RegistryLoader
LocalRegistryLoader creates a new registry, which is based on the local file system (or in-memory cache) to locate json schema profiles. Setting inMemoryOnly to true will make sure only the in-memory cache (registry_cache Go package) is accessed, thus avoiding access the filesystem.
func RemoteRegistryLoader ¶
func RemoteRegistryLoader(url string) RegistryLoader
RemoteRegistryLoader loads the schema registry map from the passed-in URL.