0

たとえば、URLにバージョンがあるRESTful APIでリクエストをルーティングする良い方法を考えています

api.example.com/v2/resource
api.example.com/v3/resource

特に、URL 内のこれらのメジャー バージョンをアプリケーション レイアウトにマップする方法は? このように見える何か?

application/v2/models
application/v2/controllers
....
application/v3/models
application/v3/controllers
.....

私が知っている最も近い PHP 実装は、構造が次のようになる Zend Framework 1.x のモジュールを使用することです。

application/modules/v2/models
application/modules/v2/controllers
....
application/modules/v3/models
application/modules/v3/controllers
.....

しかし、これらのバージョンは実際にはモジュールではないため、これは少し間違っているように感じます。そこにもっと良いアイデアがあるかどうか疑問に思っていますか?

4

1 に答える 1

1

URL から API バージョンを削除し、代わりに HTTPAcceptヘッダーを使用する必要があります。

HTTP/1.0 GET /resource
Accept: application/vnd.foo.bar.v1+json

API のバージョン 2 をサポートするクライアントは、次を使用します。

HTTP/1.0 GET /resource
Accept: application/vnd.foo.bar.v2+json

REST API 設計の詳細については、HTTP インターフェースと RESTful Web サービスの設計を参照してください。

于 2013-02-19T14:52:29.807 に答える