2016-08-08 15 views
1

小さな質問。/api uri接頭辞を使用したsymfony2 APIサブドメインとローカルテスト

現在、私はDEVモードでlocalhostで作業しています。 私はこのようなAPIを呼び出します。

http://localhost/project/web/app_dev.php/api/get_all

そして今、私は、私は上記のURIと以下このいずれかを使用することができるように、APIのサブドメインの検出を追加したいです。

http://api.example.org/get_all

これは可能ですか?はいの場合:これがどのように機能するのか考えていただけますか? おそらくRequest-Rewrite via .htaccess? (シンプル) カーネルイベントのリライト要求で(Complex)または?

私はこのrouting.ymlでFOSUserBundleを使用しています。

api: 
    resource: "@ApiBundle/Controller/" 
    type:  annotation 
    prefix: /api 
    defaults: {_format: json} 
+0

devドメインをライブドメインに直接マッピングすることをおすすめします。したがって、 'api.localhost'などを使用してapi.example.orgドメインをテストします。 – Ryan

答えて

1

How to Match a Route Based on the Hostに記載されているように、これを試すことができます。

api: 
    resource: "@ApiBundle/Controller/" 
    type:  annotation 
    path: /
    host:  "api.example.com" 
    defaults: {_format: json} 

また、環境に応じて経路を変更するには、PHP routingを使用してください。

しかしどちらのオプションもおすすめしません。

+0

しかし、あなたの他の答えで行うべき最善のことは、例えば: 'api.project.localhost'と' project.localhost'ですか?それとも、 'parameters.yml'にドメインパラメータがあり、そこに' project.org'という生産環境と 'localhost'という開発環境を設定したのでしょうか? routing.ymlでは、このパラメータを使用してapiとデフォルトドメインのルーティングを行っていますか?あなたの '完璧な方法/ベストプラクティス'は何ですか? :-)私はそれを正しくやりたいと思っています;-) – Patrick

+0

最も良い方法は、すべてのプロダクションドメインに対して1つのテストドメインです。また、構成内のドメインを参照しないでください。あなたはそのような驚きを最小限に抑えます。 – Ryan

+0

したがって、 'api.'にはインストールを、' www.'にはインストールを使うのが最善でしょうか? – Patrick

関連する問題