Extension de services Request & Response Modification (existante)
Certaines situations requièrent la possibilité de modifier chaque requête et réponse qui passe par le proxy de l’AppGateway. Il s’agit par exemple de définir un en-tête de requête HTTP contenant une valeur dynamique ou de modifier le code de réponse pour une ressource donnée.
Dans la plupart des scénarios d’orchestration, la modification de chaque requête ou réponse est inutile et peut avoir des répercussions sur les performances. Ces extensions de service ne doivent être utilisées que lorsque cela est nécessaire.
ModifyRequestSE
Cette extension de services peut être utilisée pour modifier chaque requête passant par le proxy de l’AppGateway.
appgateways:
- name: example
# ...
modifyRequestSE:
funcName: ModifyRequest
file: /etc/maverics/extensions/modifyRequest.go
/etc/maverics/extensions/modifyRequest.go
package main
import (
"net/http"
"time"
"maverics/app"
"maverics/log"
)
func ModifyRequest(ag *app.AppGateway, req *http.Request) {
log.Info("msg", "setting header on request")
req.Header.Set("X-Req-Time", time.Now().String())
}
ModifyResponseSE
Cette extension de services peut être utilisée pour modifier chaque réponse passant par le proxy de l’AppGateway.
appgateways:
- name: example
# ...
modifyResponseSE:
funcName: ModifyResponse
file: /etc/maverics/extensions/modifyResponse.go
/etc/maverics/extensions/modifyResponse.go
package main
import (
"net/http"
"maverics/app"
"maverics/log"
)
func ModifyResponse(ag *app.AppGateway, resp *http.Response) {
if resp.Request.URL.Path != "/special/path/" {
return
}
log.Info("msg", "setting status code for '/special/path/' resource")
resp.StatusCode = http.StatusOK
}