一般的な RESTful API の大部分は、サブディレクトリよりもサブドメインを好むようです。
- api.twitter.com
- api.linkedin.com
- api.foursquare.com
- graph.facebook.com
その背後に技術的な議論があるかどうか疑問に思っていました。
それは負荷分散のことです。
twitter.com のアドレスは 199.59.150.39
twitter.com のアドレスは 199.59.149.230
twitter.com のアドレスは 199.59.150.7
api.twitter.com の
アドレスは
199.59.150.9アドレス 199.59.148.20
api.twitter.com のアドレスは 199.59.148.87api.linkedin.com のアドレスは 216.52.242.83 です
linkedin.com のアドレスは 216.52.242.86 ですapi.foursquare.com のアドレスは 50.19.210.39 です
foursquare.com のアドレスは 50.16.220.173 ですgraph.facebook.com のアドレス 66.220.146.87
facebook.com のアドレス 66.220.158.11
facebook.com のアドレス 69.171.229.11
facebook.com のアドレス 69.171.242.11
facebook.com のアドレス 66.220.149.11
プロキシではなくクライアントで Web と API を分離すると、安定性が大幅に向上します。たとえば、Twitter 自身のサイトは Ruby で実行されていますが、バックエンドは主に Scala で記述されています。プロキシはこれら 2 つをルーティングできますが、API とメイン サイトの両方への多数の接続が必要になるため、接続プールが 2 倍の大きさになります。
もう 1 つの利点は、API がダウンしてもサイトが引き続き機能することです (サイトは API の上に構築されているため、Twitter には当てはまりません)。
考慮すべきことは、クロスドメイン AJAX 呼び出しです。サイトにいるdomain.com
場合は、AJAX 呼び出しを行うことはできませんsub.domain.com
。
APIサービスを使いたいなら別のサーバー(大規模)api.domain.com
がいいけど、AJAXを中・小規模で使いたいならdomain.com/api
もっといい。