github.com/avenga/couper@v1.12.2/server/testdata/endpoints/11_couper.hcl (about)

     1  server { # sequences
     2    endpoint "/simple" {
     3      request "resolve" {
     4        url = "${request.headers.origin}/"
     5        headers = {
     6          Accept = "application/json"
     7          X-Value = "my-value"
     8        }
     9      }
    10  
    11      request {
    12        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
    13        headers = {
    14          x = backend_responses.resolve.headers.y-value
    15        }
    16        json_body = backend_responses.resolve.json_body
    17      }
    18    }
    19  
    20    endpoint "/simple-proxy" {
    21      request "resolve" {
    22        url = "${request.headers.origin}/"
    23        headers = {
    24          Accept = "application/json"
    25          X-Value = "my-proxy-value"
    26        }
    27      }
    28  
    29      proxy {
    30        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
    31        set_request_headers = {
    32          x = backend_responses.resolve.headers.y-value
    33          y = backend_responses.resolve.body
    34        }
    35      }
    36    }
    37  
    38    endpoint "/simple-proxy-named" {
    39      request {
    40        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
    41        headers = {
    42          x = backend_responses.resolve.headers.y-value
    43        }
    44      }
    45  
    46      proxy "resolve" {
    47        url = "${request.headers.origin}/"
    48      }
    49    }
    50  
    51    endpoint "/complex-proxy" {
    52      request "resolve" { # use the reflected origin header to obtain the y-value
    53        url = "${backend_responses.resolve_first.headers.origin}/"
    54      }
    55  
    56      request "resolve_first" {
    57        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
    58        headers = {
    59          origin = request.headers.origin
    60        }
    61      }
    62  
    63      proxy {
    64        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
    65        set_request_headers = {
    66          x = backend_responses.resolve.headers.y-value
    67        }
    68      }
    69    }
    70  
    71    endpoint "/parallel-complex-proxy" {
    72      request "standalone" { # parallel with both sequences
    73        url = "${backend_responses.resolve_first.headers.origin}/"
    74      }
    75  
    76      request "resolve" { # use the reflected origin header to obtain the y-value
    77        url = "${backend_responses.resolve_first.headers.origin}/"
    78      }
    79  
    80      request "resolve_first" {
    81        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
    82        headers = {
    83          origin = request.headers.origin
    84        }
    85      }
    86  
    87      request "resolve_gamma" { # use the reflected origin header to obtain the y-value
    88        url = "${backend_responses.resolve_gamma_first.headers.origin}/"
    89      }
    90  
    91      request "resolve_gamma_first" {
    92        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
    93        headers = {
    94          origin = request.headers.origin
    95        }
    96      }
    97  
    98      proxy {
    99        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   100        set_request_headers = {
   101          x = backend_responses.resolve.headers.y-value
   102        }
   103      }
   104  
   105      response {
   106        headers = {
   107          x = backend_responses.default.headers.x
   108          y = backend_responses.resolve_gamma.headers.y-value
   109          z = backend_responses.standalone.headers.y-value
   110        }
   111      }
   112    }
   113  
   114    endpoint "/parallel-complex-nested" {
   115      request "last" { # seq waiting for the other sequences in parallel
   116        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   117        headers = {
   118          a = backend_responses.resolve_gamma.headers.y-value
   119          b = backend_responses.resolve.headers.y-value
   120        }
   121      }
   122  
   123      request "resolve" { # use the reflected origin header to obtain the y-value
   124        url = "${backend_responses.resolve_first.headers.origin}/"
   125      }
   126  
   127      request "resolve_first" {
   128        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   129        headers = {
   130          origin = request.headers.origin
   131        }
   132      }
   133  
   134      request "resolve_gamma" { # use the reflected origin header to obtain the y-value
   135        url = "${backend_responses.resolve_gamma_first.headers.origin}/"
   136      }
   137  
   138      request "resolve_gamma_first" {
   139        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   140        headers = {
   141          origin = request.headers.origin
   142        }
   143      }
   144  
   145      proxy {
   146        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   147        set_request_headers = {
   148          x = backend_responses.resolve.headers.y-value
   149        }
   150      }
   151  
   152      response {
   153        headers = {
   154          a = backend_responses.last.headers.a
   155          b = backend_responses.last.headers.b
   156          x = backend_responses.default.headers.x
   157          y = backend_responses.resolve_gamma.headers.y-value
   158        }
   159      }
   160    }
   161  
   162    endpoint "/multiple-request-uses" {
   163      request "r1" {
   164        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   165      }
   166      request "r2" {
   167        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   168        json_body = backend_responses.r1.json_body
   169      }
   170      request {
   171        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   172        json_body = [
   173          backend_responses.r1.json_body
   174          ,
   175          backend_responses.r2.json_body
   176        ]
   177      }
   178    }
   179  
   180    endpoint "/multiple-proxy-uses" {
   181      proxy "p1" {
   182        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   183      }
   184      request "r2" {
   185        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   186        json_body = backend_responses.p1.json_body
   187      }
   188      request {
   189        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   190        json_body = [
   191          backend_responses.p1.json_body
   192          ,
   193          backend_responses.r2.json_body
   194        ]
   195      }
   196    }
   197  
   198    endpoint "/multiple-sequence-uses" {
   199      request "r1" {
   200        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   201      }
   202      request "r2" {
   203        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   204        json_body = backend_responses.r1.json_body
   205      }
   206      request "r3" {
   207        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   208        json_body = backend_responses.r2.json_body
   209      }
   210      request "r4" {
   211        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   212        json_body = backend_responses.r2.json_body
   213      }
   214      request {
   215        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   216        json_body = [
   217          backend_responses.r3.json_body
   218          ,
   219          backend_responses.r4.json_body
   220        ]
   221      }
   222    }
   223  
   224    endpoint "/multiple-parallel-uses" {
   225      request "r1" {
   226        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   227      }
   228      request "r2" {
   229        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   230      }
   231      request "r3" {
   232        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   233        json_body = [
   234          backend_responses.r1.json_body
   235          ,
   236          backend_responses.r2.json_body
   237        ]
   238      }
   239      request "r4" {
   240        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   241        json_body = [
   242          backend_responses.r1.json_body
   243          ,
   244          backend_responses.r2.json_body
   245        ]
   246      }
   247      request {
   248        url = "${env.COUPER_TEST_BACKEND_ADDR}/reflect"
   249        json_body = [
   250          backend_responses.r3.json_body
   251          ,
   252          backend_responses.r4.json_body
   253        ]
   254      }
   255    }
   256  }