1

APIのフロントエンドを管理するために3scaleを使用しています。URL文字列の代わりにAPIをリクエストのヘッダーに含めたい(少しきれいに見える)

現時点では、そのように定義されています。

  set req.http.X-3scale-app_id = regsub(req.url,".*[&?](app_id.[^&]*).*","\1");
  set req.http.X-3scale-app_key = regsub(req.url,".*[&?](app_key.[^&]*).*","\1");
  set req.http.X-3scale-user_key = regsub(req.url,".*[&?](user_key.[^&]*).*","\1");
  set req.http.X-3scale-user_id = regsub(req.url,".*[&?](user_id.[^&]*).*","\1");

  if (req.http.X-3scale-app_id != req.url) {
    set req.http.X-3scale-authrep = req.http.X-3scale-authrep + "&" + req.http.X-3scale-app_id;  
  }

  if (req.http.X-3scale-app_key != req.url ) {
    set req.http.X-3scale-authrep = req.http.X-3scale-authrep + "&" + req.http.X-3scale-app_key;  
  }

  if (req.http.X-3scale-user_id != req.url) {
    set req.http.X-3scale-authrep = req.http.X-3scale-authrep + "&" + req.http.X-3scale-user_id;  
  }

  if (req.http.X-3scale-user_key != req.url) {
    set req.http.X-3scale-authrep = req.http.X-3scale-authrep + "&" + req.http.X-3scale-user_key;  
  }

  unset req.http.X-3scale-app_id;
  unset req.http.X-3scale-app_key;
  unset req.http.X-3scale-user_id;
  unset req.http.X-3scale-user_key;

私がやりたいのは、ヘッダーからキーを取得することです。これは、より良いと思うので、次のようなことができます...

set req.http.X-3scale-app_key = req.http.x-appid

しかし、これを機能させることはできません!何かが足りない

4

1 に答える 1

0

このようなものでvmodヘッダーからgetメソッドを使用してみることができます

set req.X-3scale-app_id = header.get(req.http.SomeOtherHeader,".*");

クライアント側では、SomeOtherHeaderをプレーンテキストで設定する必要があります

しかし、なぜこのX-3scale-app_idをクライアント側で直接設定しないのですか?

于 2012-08-23T15:43:03.987 に答える