github.com/upcmd/up@v0.8.1-0.20230108151705-ad8b797bf04f/tests/functests/c0141.yml (about) 1 doc_meta: | 2 folder: object-oriented 3 title: map structure result 4 head: | 5 Showcase automatically convert a api call result, which is a json response, to a internal object, so that you can retrieve sub nodes and fields to map to your result 6 7 sections: 8 - title: Demo 9 log: yes 10 11 tasks: 12 - 13 name: task 14 desc: | 15 test reg with a registered name 16 in this case the registered reslt name is: test2_httpbinget_result 17 task: 18 - 19 func: shell 20 name: httpbinget 21 desc: it will use the given name as var name to register the result 22 do: 23 - 'curl -s -X GET "https://httpbin.org/get" -H "accept: application/json"' 24 reg: httpbin_get_result 25 26 - func: cmd 27 dvars: 28 - name: api_response 29 value: '{{.httpbin_get_result.Output}}' 30 flags: 31 - toObj 32 - v 33 34 - name: api_response_headers 35 desc: test if I can get immediately access of converted object 36 value: '{{.api_response_object.headers}}' 37 flags: 38 - v 39 40 - name: api_response_headers_host 41 value: '{{.api_response_object.headers.Host}}' 42 flags: 43 - v 44 45 do: 46 - name: print 47 cmd: '{{.httpbin_get_result.Code}}' 48 - name: print 49 cmd: '{{.httpbin_get_result.Output}}' 50 - name: print 51 cmd: '{{.api_response}}' 52 - name: inspect 53 cmd: 54 - exec_vars 55 - debug_vars 56 57 - name: print 58 cmd: '{{.api_response_object.headers.Host}}' 59 - name: printObj 60 cmd: api_response_headers 61 - name: print 62 desc: | 63 you can not use this header directly, if you intend to use a sub node, then you should use query and register a sub node 64 cmd: '{{.api_response_headers}}' 65 - name: print 66 cmd: '{{.api_response_headers_host}}'