2017-01-03 3 views
0

cakephp 2.9でWebアプリケーションを作成しています。それは現在、私は、APIの一部を開発していたWebページ(通常のWeb applicaiton)を提供するにAndroidとiOSデバイス CakephpでのAPIベストプラクティスの作成

  • へのAPIアクセスを提供するために、2つの使用、

    を持って、私はwebserviceControllerを作成します.phpファイルとすべてのApiを書く、今私はコントローラが脂肪すぎるように感じる、 私はAPIの管理するためのベストプラクティスを知っていない。今のコード2000行よりも私のWebサービスcontrollerhave詳細..異なるコントローラ 内の各APIを区切るために

    今IAM計画は、誰もがCakePHPの

    でのAPIを記述するための私の良い習慣を提案することができ、現在、私のコードは

    のように見えます
    class WebServicesController extends Controller 
    { 
    
    public $uses = null; 
    public $components = array('RequestHandler', 'Verification', 'AppContstant','PushNotification'); 
    public function users() 
    { 
        //code to get users 
         // 
        $this->set(array(
         'result' => $result, 
         '_serialize' => 'result' 
        )); 
    } 
    

    と私のroute.php

    Router::mapResources('WebServices'); 
    Router::parseExtensions(); 
    
    Router::resourceMap(array(
        array('action' => 'users', 'method' => 'GET', 'id' => false), 
    

    に私はwebserviceContrでより周りに43 APIを持っていますoller、ベストプラクティスは何APIのCakePHPの

  • を管理する方法

    1. _serializeとjson_encode()は高速ですか?
    2. API URLをバージョン管理するにはどうすればよいですか?
  • +0

    @ AD7sixさんはこの質問に答えることができますか? –

    答えて

    1

    cakephpでAPIを作成する最も簡単な方法は、コントローラから直接JSONを出力し、die()でレンダリングを停止することです。

    公式ドキュメントでは、出力用のAPIビューを用意することをお勧めします。これは標準のMVC方法であり、良い方法です。あなたはここでもっと詳しく調べることができます:https://book.cakephp.org/2.0/en/views/json-and-xml-views.html

    多分、Croogoの実装方法を参照することができます。これはCakephpベースのCMSです。 彼らはバージョンと方法を管理するための成分としてAPIを作る:https://github.com/croogo/croogo/blob/master/Croogo/Controller/Component/BaseApiComponent.php これはフォーマット/$version/$model/$method.$format/?$parametersでそのURLルーティングの一例である

    http://www.example.com/croogo-2.2.2/api/v1.0/nodes/lookup.json?type=page&title=how
    1

    Sibinフランシスをあなたは残りのAPIクラスを使用し、非常に簡単でシンプルなトップ

    App::import('Vendor', 'REST', array('file' => 'Rest.inc.php')); 
    Public function yourFunctionName() { 
        if ($this->request->is("post")) { // Use your method name put/post/get/etc 
         $rest = new REST(); 
         // Your logic here 
         return $rest->response(json_encode($data), response_code); 
        } 
    } 
    

    その時に次の行を追加しますAPIコントローラ に含めることができます。あなたはベンダーのRest Apiクラスに電話する必要があります。

    +0

    cakephpのデフォルトREST設定の中にoauthトークンベースのセキュリティを追加するにはどうすればいいですか? –

    +1

    あなたの設定にトークンキーを追加し、すべてのリクエストに対してシステムのユーザIDを検証します。そのユーザーが存在するかどうかを検証します。認証に成功した後、さらに要求を処理します。 –

    +0

    ありがとう、私は試してみます –

    関連する問題