0

私は pylons の初心者で、API バージョン管理システムを設計する仕事をしています。異なるバージョンの API を異なるフォルダーに保存したいと考えています。例えば:

controllers/APIVersion/v1/clientAPI.py -- Version 1
controllers/APIVersion/v2/clientAPI.py -- Version 2
controllers/APIVersion/v3/clientAPI.py -- Version 3

これらの API にアクセスするためのリクエストは次のようになります。

curl 'http://mySite/v1/clientAPI/get/' -- Should bring me to the first version
curl 'http://mySite/v2/clientAPI/get/' -- Should bring me to the second version

これは、routing.py を介して行うことができます。これはうまくいかなかった私の最初のアイデアでした:

map.connect('/APIVersion/{version}/{controller}/{action}')

目的の場所にルーティングする方法に関するアイデアはありますか? また、私のバージョン管理アプローチについて気軽にコメントしてください。アドバイスを歓迎します。

4

1 に答える 1

0

Routesが最初に目にするのはURLです(これはへの最初の引数でもありますconnect)。のようなURLを使用してAPIにアクセスしようとして/v1/clientAPI/get/いますが、のようなルートでrouting.pyを構成しました/APIVersion/{version}/{controller}/{action}。したがって、一致するものはありません。
最も簡単な「修正」はhttp://mySite/APIVersion/v1/clientAPI/get/、v1やhttp://mySite/APIVersion/v2/clientAPI/get/v2などのURLを使用することです(APIVersionとすべてのv1からvXがパッケージであり、それぞれのコントローラークラスclientAPI.pyが呼び出されることも確認する必要がありますClientapiController)。
それがオプションではない場合(たとえば、のようなURLを使用したい/v1/clientAPI/get/が、のようなコントローラーディレクトリレイアウトを使用したい場合)は、ここ/APIVersion/v1/clientAPI/get/にリストされているものと同様の方法を使用する必要があります。

于 2012-04-29T21:15:02.920 に答える