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

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

Posted: 2018-02-04


スポンサーリンク

目次

  • 背景
  • 前提: Apigeeとは
  • やりたいこと
  • やり方

    背景

    近年の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