github.com/avenga/couper@v1.12.2/server/testdata/integration/error_handler/05_couper.hcl (about)

     1  server {
     2    api {
     3      endpoint "/api-backend" {
     4        proxy {
     5          backend {
     6            origin  = "${env.COUPER_TEST_BACKEND_ADDR}"
     7            timeout = "1ns"
     8          }
     9        }
    10      }
    11  
    12      error_handler "backend" {
    13        response {
    14          status = 405
    15          json_body = {
    16            "api": "backend"
    17          }
    18        }
    19      }
    20    }
    21  
    22    api {
    23      endpoint "/api-backend-timeout" {
    24        proxy {
    25          backend {
    26            origin  = "${env.COUPER_TEST_BACKEND_ADDR}"
    27            timeout = "1ns"
    28          }
    29        }
    30      }
    31  
    32      error_handler "backend_timeout" {
    33        response {
    34          status = 405
    35          json_body = {
    36            "api": "backend-timeout"
    37          }
    38        }
    39      }
    40    }
    41  
    42    api {
    43      endpoint "/api-backend-validation" {
    44        proxy {
    45          backend {
    46            origin = "${env.COUPER_TEST_BACKEND_ADDR}"
    47  
    48            openapi {
    49              file = "01_schema.yaml"
    50            }
    51          }
    52        }
    53      }
    54  
    55      error_handler "backend_openapi_validation" {
    56        response {
    57          status = 405
    58          json_body = {
    59            "api": "backend-validation"
    60          }
    61        }
    62      }
    63    }
    64  
    65    api {
    66      endpoint "/api-anything" {
    67        proxy {
    68          backend {
    69            origin = "${env.COUPER_TEST_BACKEND_ADDR}"
    70  
    71            openapi {
    72              file = "02_schema.yaml"
    73            }
    74          }
    75        }
    76      }
    77  
    78      error_handler "backend_openapi_validation" {
    79        response {
    80          status = 405
    81          json_body = {
    82            "api": "backend-backend-validation"
    83          }
    84        }
    85      }
    86    }
    87  
    88    endpoint "/backend" {
    89      proxy {
    90        backend {
    91          origin  = "${env.COUPER_TEST_BACKEND_ADDR}"
    92          timeout = "1ns"
    93        }
    94      }
    95  
    96      error_handler "backend" {
    97        response {
    98          status = 405
    99          json_body = {
   100            "endpoint": "backend"
   101          }
   102        }
   103      }
   104    }
   105  
   106    endpoint "/backend-timeout" {
   107      proxy {
   108        backend {
   109          origin  = "${env.COUPER_TEST_BACKEND_ADDR}"
   110          timeout = "1ns"
   111        }
   112      }
   113  
   114      error_handler "backend_timeout" {
   115        response {
   116          status = 405
   117          json_body = {
   118            "endpoint": "backend-timeout"
   119          }
   120        }
   121      }
   122    }
   123  
   124    endpoint "/backend-validation" {
   125      proxy {
   126        backend {
   127          origin = "${env.COUPER_TEST_BACKEND_ADDR}"
   128  
   129          openapi {
   130            file = "01_schema.yaml"
   131          }
   132        }
   133      }
   134  
   135      error_handler "backend_openapi_validation" {
   136        response {
   137          status = 405
   138          json_body = {
   139            "endpoint": "backend-validation"
   140          }
   141        }
   142      }
   143    }
   144  
   145    endpoint "/anything" {
   146      proxy {
   147        backend {
   148          origin = "${env.COUPER_TEST_BACKEND_ADDR}"
   149  
   150          openapi {
   151            file = "02_schema.yaml"
   152          }
   153        }
   154      }
   155  
   156      error_handler "backend_openapi_validation" {
   157        response {
   158          status = 405
   159          json_body = {
   160            "endpoint": "backend-backend-validation"
   161          }
   162        }
   163      }
   164    }
   165  
   166    api {
   167      endpoint "/c" {
   168        proxy {
   169          backend {
   170            origin  = "${env.COUPER_TEST_BACKEND_ADDR}"
   171  
   172            openapi {
   173              file = "01_schema.yaml"
   174            }
   175          }
   176        }
   177  
   178        error_handler "backend_openapi_validation" {
   179          // should win
   180          response {
   181            status = 405
   182            body = "endpoint:backend_openapi_validation"
   183          }
   184        }
   185      }
   186  
   187      error_handler "backend" {
   188        response {
   189          status = 400
   190          body = "api:backend"
   191        }
   192      }
   193    }
   194  
   195    api {
   196      endpoint "/d" {
   197        proxy {
   198          backend {
   199            origin  = "${env.COUPER_TEST_BACKEND_ADDR}"
   200  
   201            openapi {
   202              file = "01_schema.yaml"
   203            }
   204          }
   205        }
   206  
   207        error_handler "backend" {
   208          // should win
   209          response {
   210            status = 405
   211            body = "endpoint:backend"
   212          }
   213        }
   214      }
   215  
   216      error_handler "backend_openapi_validation" {
   217        response {
   218          status = 400
   219          body = "api:backend_openapi_validation"
   220        }
   221      }
   222    }
   223  
   224    api {
   225      endpoint "/e" {
   226        proxy {
   227          backend {
   228            origin  = "${env.COUPER_TEST_BACKEND_ADDR}"
   229  
   230            openapi {
   231              file = "01_schema.yaml"
   232            }
   233          }
   234        }
   235  
   236        error_handler "backend_openapi_validation" {
   237          // should win
   238          response {
   239            status = 405
   240            body = "endpoint:backend_openapi_validation"
   241          }
   242        }
   243      }
   244  
   245      error_handler "*" {
   246        response {
   247          status = 400
   248          body = "api:*"
   249        }
   250      }
   251    }
   252  
   253    api {
   254      endpoint "/f" {
   255        proxy {
   256          backend {
   257            origin  = "${env.COUPER_TEST_BACKEND_ADDR}"
   258  
   259            openapi {
   260              file = "01_schema.yaml"
   261            }
   262          }
   263        }
   264  
   265        error_handler "*" {
   266          // should win
   267          response {
   268            status = 405
   269            body = "endpoint:*"
   270          }
   271        }
   272      }
   273  
   274      error_handler "backend_openapi_validation" {
   275        response {
   276          status = 400
   277          body = "api:backend_openapi_validation"
   278        }
   279      }
   280    }
   281  
   282    api {
   283      endpoint "/g" {
   284        proxy {
   285          backend {
   286            origin  = "${env.COUPER_TEST_BACKEND_ADDR}"
   287  
   288            openapi {
   289              file = "01_schema.yaml"
   290            }
   291          }
   292        }
   293  
   294        error_handler "backend" {
   295          // should win
   296          response {
   297            status = 405
   298            body = "endpoint:backend"
   299          }
   300        }
   301      }
   302  
   303      error_handler "*" {
   304        response {
   305          status = 400
   306          body = "api:*"
   307        }
   308      }
   309    }
   310  
   311    api {
   312      endpoint "/h" {
   313        proxy {
   314          backend {
   315            origin  = "${env.COUPER_TEST_BACKEND_ADDR}"
   316  
   317            openapi {
   318              file = "01_schema.yaml"
   319            }
   320          }
   321        }
   322  
   323        error_handler "*" {
   324          // should win
   325          response {
   326            status = 405
   327            body = "endpoint:*"
   328          }
   329        }
   330      }
   331  
   332      error_handler "backend" {
   333        response {
   334          status = 400
   335          body = "api:backend"
   336        }
   337      }
   338    }
   339  }