MCPcopy Index your code
hub / github.com/getkin/kin-openapi / loadSingleElementFromURI

Method loadSingleElementFromURI

openapi3/loader.go:114–141  ·  view source on GitHub ↗
(ref string, rootPath *url.URL, element any)

Source from the content-addressed store, hash-verified

112}
113
114func (loader *Loader) loadSingleElementFromURI(ref string, rootPath *url.URL, element any) (*url.URL, error) {
115 // IsExternalRefsAllowed is enforced here only when no custom ReadFromURIFunc
116 // is installed; otherwise the custom func owns the access policy (see the
117 // SECURITY note on the ReadFromURIFunc field).
118 if loader.ReadFromURIFunc == nil {
119 if err := loader.allowsExternalRefs(ref); err != nil {
120 return nil, err
121 }
122 }
123
124 resolvedPath, err := loader.resolvePathWithRef(ref, rootPath)
125 if err != nil {
126 return nil, err
127 }
128 if frag := resolvedPath.Fragment; frag != "" {
129 return nil, fmt.Errorf("unexpected ref fragment %q", frag)
130 }
131
132 data, err := loader.readURL(resolvedPath)
133 if err != nil {
134 return nil, err
135 }
136 if err := unmarshal(data, element, loader.IncludeOrigin, resolvedPath); err != nil {
137 return nil, err
138 }
139
140 return resolvedPath, nil
141}
142
143func (loader *Loader) readURL(location *url.URL) ([]byte, error) {
144 if f := loader.ReadFromURIFunc; f != nil {

Callers 10

resolveHeaderRefMethod · 0.95
resolveParameterRefMethod · 0.95
resolveRequestBodyRefMethod · 0.95
resolveResponseRefMethod · 0.95
resolveSchemaRefMethod · 0.95
resolveExampleRefMethod · 0.95
resolveCallbackRefMethod · 0.95
resolveLinkRefMethod · 0.95
resolvePathItemRefMethod · 0.95

Calls 4

allowsExternalRefsMethod · 0.95
resolvePathWithRefMethod · 0.95
readURLMethod · 0.95
unmarshalFunction · 0.70

Tested by

no test coverage detected