--- title: openapi3.Unmarshal description: Unmarshals the given resource into an OpenAPI 3 document. categories: [] keywords: [] action: aliases: [] related: [] returnType: openapi3.OpenAPIDocument signatures: ['openapi3.Unmarshal RESOURCE'] --- Use the `openapi3.Unmarshal` function with [global], [page], or [remote] resources. [global]: /getting-started/glossary/#global-resource [page]: /getting-started/glossary/#page-resource [remote]: /getting-started/glossary/#remote-resource [OpenAPI]: https://www.openapis.org/ For example, to work with a remote [OpenAPI] definition: ```go-html-template {{ $url := "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/examples/v3.0/petstore.json" }} {{ $api := "" }} {{ with resources.GetRemote $url }} {{ with .Err }} {{ errorf "%s" . }} {{ else }} {{ $api = . | openapi3.Unmarshal }} {{ end }} {{ else }} {{ errorf "Unable to get remote resource %q" $url }} {{ end }} ``` To inspect the data structure: ```go-html-template
{{ debug.Dump $api }}``` To list the GET and POST operations for each of the API paths: ```go-html-template {{ range $path, $details := $api.Paths }}
{{ $path }}
/pets
/pets/{petId}