1

私は (Phil Sturgeons Codeigniter-Restserver を使用して) 残りの API を構築しており、次のチュートリアルに忠実に取り組んできました。

http://net.tutsplus.com/tutorials/php/working-with-restful-services-in-codeigniter-2/

特に、チュートリアルのこの部分に注意を払っています。

function user_get()  
{  
    // respond with information about a user  
}  

function user_put()  
{  
    // create a new user and respond with a status/errors  
}  

function user_post()  
{  
    // update an existing user and respond with a status/errors  
}  

function user_delete()  
{  
    // delete a user and respond with a status/errors  
}

また、API からアクセスできるデータベース オブジェクトごとに上記の関数を記述しています。

function users_get()  //    <-- Note the "S" at the end of "user"
{  
    // respond with information about all users
} 

現在、約 30 のデータベース オブジェクト (ユーザー、製品、クライアント、トランザクションなど) があり、そのすべてに上記の関数が記述されており、すべての関数が /controllers/api/api.php にダンプされ、このファイルが大きくなりました。非常に大きくなります (2000 行以上のコード)。

質問1:

すべての API 関数を 1 つのファイルにダンプするのではなく、この API ファイルをたとえば 30 個のファイルに分割し、単一のデータベース オブジェクトに関連するすべての API 関数を 1 つの場所に保持する方法はありますか?

質問2:

また、現在のモデル関数 (API に関連しない関数) と API で使用される関数を分離したいと考えています。
私はこれを行う必要がありますか?ここで使用する必要がある推奨されるアプローチはありますか? たとえば、API によって使用される個別のモデルを作成する必要がありますか、それとも、特定のデータベース オブジェクトのすべてのモデル関数 (API 以外の関数と API 関数の両方) を同じファイルに保持してもかまいませんか?

フィードバックやアドバイスは素晴らしいでしょう..

4

1 に答える 1

3

API コントローラーは、通常のコントローラーと同じ方法で作成できます。モデルでも同じことができます。

application/controllers/api/users.php

class Users extends REST_Controller{
    function user_post(){
        $this->users_model->new_user()
    ...

 POST index.php/api/user

--

application/controllers/api/transactions.php

class Transactions extends REST_Controller{
    function transaction_get(){
        $this->transactions_model->get()
    ...

GET index.php/api/transaction

また、現在のモデル関数 (API に関連しない関数) と API で使用される関数を分離したいと考えています。

必要なものが返される限り、同じメソッドを使用できない理由がわかりません。

于 2013-05-12T19:01:16.453 に答える