【Apigee】if文的なことをする方法 | 瀬戸内の雲のように

【Apigee】if文的なことをする方法

Posted: 2018-02-04


スポンサーリンク

目次

背景

近年のAPI熱の高まりを受けて、私が担当している業務の近辺でもAPIが盛り上がって来ました。そんな中、「Apigeeって言うのが良いらしい。◯◯社も使ってるらしいぞ!」という上司の一言で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を使う上では欠かせない文法だと思います。


スポンサーリンク




コメント一覧


コメントを投稿する


お名前


コメント内容





TOP back