// JSONDoc loads a json document from either a file or a remote url func JSONDoc(path string) (json.RawMessage, error) { data, err := swag.LoadFromFileOrHTTP(path) if err != nil { return nil, err } return json.RawMessage(data), nil }
func defaultSchemaLoader(root interface{}, ref *Ref, cache ResolutionCache) (*schemaLoader, error) { if cache == nil { cache = resCache } var ptr *jsonpointer.Pointer if ref != nil { ptr = ref.GetPointer() } currentRef := nextRef(root, ref, ptr) return &schemaLoader{ root: root, loadingRef: ref, startingRef: ref, cache: cache, loadDoc: func(path string) (json.RawMessage, error) { data, err := swag.LoadFromFileOrHTTP(path) if err != nil { return nil, err } return json.RawMessage(data), nil }, currentRef: currentRef, }, nil }
// YAMLData loads a yaml document from either http or a file func YAMLData(path string) (interface{}, error) { data, err := swag.LoadFromFileOrHTTP(path) if err != nil { return nil, err } return bytesToYAMLDoc(data) }
func init() { PathLoader = func(path string) (json.RawMessage, error) { data, err := swag.LoadFromFileOrHTTP(path) if err != nil { return nil, err } return json.RawMessage(data), nil } }
func TestLoadHTTPBytes(t *testing.T) { _, err := swag.LoadFromFileOrHTTP("httx://12394:abd") assert.Error(t, err) serv := httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) { rw.WriteHeader(http.StatusNotFound) })) defer serv.Close() _, err = swag.LoadFromFileOrHTTP(serv.URL) assert.Error(t, err) ts2 := httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) { rw.WriteHeader(http.StatusOK) rw.Write([]byte("the content")) })) defer ts2.Close() d, err := swag.LoadFromFileOrHTTP(ts2.URL) assert.NoError(t, err) assert.Equal(t, []byte("the content"), d) }
func loadSpec(path string) (*spec.Swagger, error) { spec.PathLoader = func(path string) (json.RawMessage, error) { ext := filepath.Ext(path) if ext == ".yml" || ext == ".yaml" { return fmts.YAMLDoc(path) } data, err := swag.LoadFromFileOrHTTP(path) if err != nil { return nil, err } return json.RawMessage(data), nil } data, err := fmts.YAMLDoc(path) if err != nil { return nil, err } var sw spec.Swagger if err := json.Unmarshal(data, &sw); err != nil { return nil, err } return &sw, nil }