3

基本的に特定の URI エンドポイントを公開し、それらを任意の数のバックエンド URL にマップする API を構築する必要があります。

したがって、API は Mongo で次のようにマッピングされます。

{"name": "example", "from": "/resources", "to": "http://backendservice.com/1/billing", "method": "POST"}

{"name": "example1", "from": "/resources/:id", "to": "http://backendservice.com/1/billing/:id", "method": "GET"}

{"name": "example2", "from": "/somethingelse/*", "to": "http://google.com/foo/*", "method": "ANY"}

ここでの目的は、すべてのクライアントがさまざまなサービスすべてにアクセスするために使用できる単一のエントリ ポイントを持つことです。また、簡素化されたログとレポートも可能になります。

したがって、api.example.org/resources をリクエストすると、システムは着信リクエスト URL を宛先 URL と照合します。宛先にリクエストを送信してレスポンスを受け取り、適切なロギングを行い、エラーを処理します。理にかなっていますか?

私の質問:

これを行うすぐに使用できるオープン ソース ソリューションはありますか?

良い出発点として、どのフレームワーク/ライブラリなどを提案しますか? 私は Goliath (Ruby) を見てきましたが、オープン ソースと Linux である限り、どの言語にも限定されません。

ありがとう。

4

3 に答える 3

2

APIアンブレラを使うことにしました。

https://github.com/NREL/api-umbrella

それはまさに私が必要とするものを提供します。Rubyで構築され、mongoを使用し、ルーティングを行います。完全。

于 2013-02-15T07:18:29.437 に答える
0

Ruby を超えたい場合は、Python ライブラリFlaskを使用できます。また、Ruby に組み込まれている WEBrick HTTP サーバー ライブラリを使用してこれを行うこともできます。URL ディクショナリでルックアップを行うサーブレットを作成するか、メタプログラミングを使用して動的に多くのサーブレットを作成し、それらを異なる URL にマウントするだけです。

于 2013-02-14T14:54:55.923 に答える
0

WSO2API Manager は完全にオープンソースの製品であり、apcheV2 ライセンスの下で利用できます。

APIManager と ESB を使用して、この複数のエンドポイント構成を実現できる場所。API を公開するとき、1 つのサービス エンドポイント (プロキシ エンドポイントまたは wso2esb の別の REST API である可能性があります) を指す必要がある場合があり、ESB エンドから、リクエストに基づいて複数のエンドポイントにリクエストをルーティングできます。

于 2013-02-14T14:58:02.480 に答える