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}}'