2017-01-03 39 views
0

我創造CakePHP中2.9的Web應用程序。它有兩個用途,寫作API最佳實踐在CakePHP

  1. 爲了提供Android和iOS設備的API訪問
  2. 爲了滿足Web頁面(正常的Web應用程序了)

目前我正在開發API的一部分,我創建了一個webserviceController .php文件並寫入所有Api,現在我覺得控制器太肥膩了, 我不知道哪個是管理API的最佳實踐。現在我的web controllerhave超過2000行的代碼..

現在IAM規劃單獨的每個API在不同的控制器 任何人都可以建議我一個很好的做法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奧勒,

  1. 如何管理API的CakePHP的
  2. 什麼是最好的做法是什麼?
  3. _serialize VS json_encode(),這是快?
  4. 如何版本我的API網址是什麼?
+0

@ AD7six可以uanybody回答這個問題? –

回答

1

在cakephp中製作API的最簡單方法是直接從控制器打印JSON並通過die()停止渲染。

公文建議你有輸出,這是一個標準的MVC方式是一個很好的做法的API視圖。您可以更看看這裏: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 這是它的URL路徑的格式/$version/$model/$method.$format/?$parameters http://www.example.com/croogo-2.2.2/api/v1.0/nodes/lookup.json?type=page&title=how

1

Sibin弗朗西斯爲例,您可以使用REST API類,幷包括在你的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); 
    } 
} 

它很容易和簡單。只有你需要調用供應商的Rest Api類。

+0

我們如何在cakephp –

+1

的默認REST設置中添加基於oauth令牌的安全性在您的配置中添加令牌密鑰,並在每個請求中驗證系統中的用戶ID。驗證用戶該用戶是否存在。成功認證後,進一步處理請求。 –

+0

謝謝你,我會盡力的 –