2017-02-07 7 views
2

AWS API GatewayがどのようにAPIを整理して、バージョン管理が簡単であるかを理解するのは難しいです。たとえば、辞書から単語を取得するための簡単なAPIがあり、オプションでクエリパラメータで結果をフィルタリングするとします。かなり後方である...、しかしAWS APIゲートウェイのURIベースのバージョン

https://<my-domain>/v1/names?starts-with=<value> 

私はゲートウェイが

https://<my-domain>/names/v1?starts-with=<value> 

であるAPIを取得することができます最も近い:私はでこれのv1は利用できるようにしたいのですが。

私がコンソールに持っているものは、GETメソッドをサポートする "v1"リソースを持つ "Names API"です。私はまた、 "名前"の基本パスを "Names API"にマップし、 "test"をステージングするカスタムドメインセットアップを持っています。ベースパスはユニークでなければならないので、「v1」には短期間の勝利しかありません。 2番目のAPI(Numbers APIなど)を作成するとv1も作成され、2番目のマッピングを作成できなくなります。

私が今アイデアを捨てているので、どんなに助けても大いに感謝しています。

答えて

4

バージョンパス(/ v1)をAPIのリソースとして作成しないでください。代わりに、API "Names V1"を呼び出してリソース(/名前)の作成を開始します。 APIを新しいバージョンに変更したい場合は、「Names V2」という全く新しいAPIを作成することをおすすめします。再度、バージョンパスなしでリソースを作成するだけです。

2つのAPIを組み合わせるには、カスタムドメイン名を使用できます。 API Gatewayのカスタムドメイン名には、完全修飾ドメイン名とベースパスの両方が含まれています。名前V2のAPIのPROD段階へ>ポイント - 名前V1のAPIのPROD段階

  • myapi.com/v2へ>ポイント -

    • myapi.com/v1:2人のカスタムドメイン名を作成します。

    この方法では、v2を変更している間にバグ修正v1を維持し、2つのAPIを個別に展開できます。カスタムドメイン名を使用すると、これらのドメイン名が同じドメイン(myapi.com/v2/names)に表示されます。

    これが役に立ちます。

  • +0

    ありがとう、ステファノ。しかし、基本パスが一意でなければならない場合、Numbers APIのv1をどのようにマッピングするのですか?つまり、私はmyapi.com/v1/namesとmyapi.com/v1/numbersを持つことができないと思いますか、私は何かを誤解していますか? – Mark

    +1

    現時点では、カスタムドメイン名に1つのパス部分しか持てないので、同じAPIに名前と番号の両方のリソースが必要です。私たちは他の顧客からドメイン名に複数のパス部分を含めることを聞いたことがあります。それは間違いなく私たちが検討しているものです - フィードバックに感謝します! –

    +0

    ニース。私は今、いくつかのバックアップアイデアを使用します。ところで、あなたがAmazonのために働くならば、スタックオーバーフローがあなたを検証されたエキスパートか何かに見えるかどうかを知るべきです。あなたは有名人がTwitterで行うように知っていますか?それはあなたの答えをより信頼できるものにするでしょう。 – Mark

    関連する問題