0

PHP フレームワークとして CodeIgniter を使用して Web API を構築しようとしています。

これは REST API ではありません。これは単なる Web API であり、すべてのクエリが POST クエリになることを意味します。

典型的なクエリは次のようになります

http://host/api1/user/get_name

http://host/api2/user/get_name

このような状況では、api1 と api2 がコントローラーになり、user がその下のメソッドになります。

api1 クラスと api2 クラスが大きくなりすぎて、1 つのクラスに無関係なコードを混在させたくないので、これには満足していません。

私に何ができる ?サーバーがフォーム \^api\ のリクエストを受信するたびに適切なコントローラーに転送するように、.htaccess ファイルまたはルーティング構成を操作できますか?

私のシステムのコントローラは api1 と api2 だけではないことに注意してください。

4

4 に答える 4

2

いくつかのことを考慮する必要があります

  1. それらは相互依存していますか?
  2. 2 つの Web API を維持する特定の理由が必要です。

それらが相互依存していない場合は、これを行うことをお勧めします

http://host1/user/get_name
http://host2/user/get_name

それらが相互依存している場合は、行う必要があります

http://host/api1/user/get_name
http://host/api2/user/get_name

その背後にある理由は、2 つの異なるモデルを維持する必要がないためです。

たとえば、 に変更を加えた場合、X_model.php両方のサーバーにアップロードする必要があります。

また、コントローラーの下にフォルダーを作成できます。私はそれについて非常に確信しています。で行いましたcodeigniter 1.7

したがって、それぞれフォルダーを作成して続行できます。

于 2012-05-31T07:30:54.257 に答える
1

あなたは試すことができます$route['api(:num)'] = "api$1/";

それがあなたがそれを望むように働くつもりであるかどうかdunnoをテストしていません。

Codeigniterルーティング

于 2012-05-30T19:56:00.893 に答える
1

API1とAPI2とは何ですか?それらは互いに独立していますか?

その場合は、2つのAPIに別々のサブドメインを使用することをお勧めします。これにより、次のことが可能になります。

http://api1.example.com/user/get_name
http://api2.example.com/user/get_name

これにより、2つのAPIが明確に分離され、 UserAPI全体ではなくコントローラーになることができます。

api1, api2これには、ホスティングルートに2つのディレクトリ()を作成し、CIの2つのインスタンスを「インストール」して、サブドメインをそれぞれのディレクトリにルーティングする必要があります。

于 2012-05-30T19:56:19.737 に答える
0

URLスキームに問題はありません。これは、codeigniter で controller -> action を呼び出す方法です。コントローラを細くしたい場合は、実際の処理コードをライブラリに移動し、リクエストごとにライブラリを呼び出します。または、書き換えルールを操作して、さまざまなコントローラーに作業を分散させることもできます。

于 2012-05-31T07:18:06.847 に答える