スポンサーリンク
近年のAPI熱の高まりを受けて、私が担当している業務の近辺でもAPIが盛り上がって来ました。そんな中、「Apigeeって言うのが良いらしい。◯◯社も使ってるらしいぞ!」という上司の一言でApigeeを使うことになった私が、苦労しながらApigeeプロになるべく勉強している備忘録です。はい。
google社が提供するAPIゲートウェイと呼ばれる製品です。APIを管理したり、API自体を作ったりといろいろできます。
タイトルの通りなのですが、Apigeeの中でif文を使いたいと思いました。
具体的には、HTTPのauthorizationヘッダに"Bearer ~~"という文字列が含まれている/いないで処理を分岐させたいという要望です。
結論から言うと、<Condition>文
を使うことで実現できます。
上述したことを実現するコードは以下のようになります。
# PreFlow
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ProxyEndpoint name="default">
<Description/>
<FaultRules/>
<PreFlow name="PreFlow">
<Request>
<Step>
<Condition>request.header.authorization Matches "Bearer **"</Condition> ★ココ
<Name>redirect_login_URL</Name>
</Step>
~~以下略~~
このコードではリクエストヘッダに"authorization: Bearer ~~"という文字列が含まれている場合、"redirect_login_URL"というポリシーが実行されます。
ちなみにこのCondition文はPreflowだけでなく様々な処理の中で使えます。Apigeeを使う上では欠かせない文法だと思います。
スポンサーリンク