2017-01-03 9 views
0

cakephp 2.9에서 웹 애플리케이션을 만들고 있습니다. 이 두 가지를 사용,Cakephp에서 API 베스트 프랙티스 작성하기

  1. 현재 내가 API 부분을 개발하고 웹 페이지 (일반 웹 applicaiton)

서비스를 제공하기 위해

  • Android 및 iOS 디바이스 API 액세스를 제공 할 수있다, 나는 webserviceController를 만들 .php 파일을 작성하고 모든 API를 작성, 이제는 컨트롤러가 너무 기름진 것처럼 느껴진다. API를 관리하는 가장 좋은 방법은 무엇인지 알 수 없다. 지금의 코드가 2000 개 이상의 라인 내 웹 서비스의 controllerhave ..

    지금 스피 계획은 사람이 CakePHP의에서 API를 쓰는 나에게 좋은 방법을 제안 할 수있는 다른 컨트롤러 에서 각 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' 
        )); 
    } 
    

    내가 webserviceContr 더 약 43 API를의이

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

    내 route.php에서 oller,

    1. 어떻게 API의 CakePHP의
    2. 가장 좋은 방법은 무엇입니까 관리하는?
    3. _serialize 대 json_encode()는 빠릅니다.
    4. 내 API URL을 버전 관리하는 방법은 무엇입니까?
  • +0

    @ AD7six가이 질문에 대답 할 수 있습니까? –

    답변

    1

    cakephp에서 API를 만드는 가장 간단한 방법은 컨트롤러에서 직접 JSON을 인쇄하고 die()로 렌더링을 중단하는 것입니다.

    공식 문서는 표준 MVC 방식이며 좋은 방법 인 출력용 API보기를 제안합니다. 더 자세한 내용은 여기를 참조하십시오. https://book.cakephp.org/2.0/en/views/json-and-xml-views.html

    아마도 Croogo가 구현 한 방법을 참조 할 수 있습니다. 이것은 Cakephp 기반 CMS입니다. , https://github.com/croogo/croogo/blob/master/Croogo/Controller/Component/BaseApiComponent.php 이것은 형식 /$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 프랜시스에서의 URL 라우팅의 예입니다 그들은 구성 요소로서 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); 
        } 
    } 
    

    그것의 매우 쉽고 간단한에서 당신의 API 컨트롤러 추가 다음 줄에 포함 할 수 있습니다. 당신은 오직 Rest API 클래스를 호출해야합니다.

    +0

    cakephp의 기본 REST 설정에 oauth 토큰 기반 보안을 추가하는 방법 –

    +1

    구성에 토큰 키를 추가하고 모든 요청에 ​​대해 시스템의 사용자 ID를 확인하십시오. 해당 사용자가 존재하는지 여부를 확인하십시오. 인증에 성공하면 추가 요청을 처리합니다. –

    +0

    감사합니다. 시도해 보겠습니다. –