이 글은 Yii2.0 RESTful API의 버전 관리(코드 예제)에 대해 소개합니다. 필요한 친구들이 참고할 수 있기를 바랍니다.
Yii2.0 RESTful API 구축 방법과 인증 및 기타 처리 방법에 대해 이전에 두 개의 기사를 작성한 적이 있지만 오늘은 버전 관리 구현 방법에 대해서는 다루지 않았습니다.
처음부터 시작해서 단계별로 빌드해 보세요. 하지만 이 문서에서는 일부 개념과 사용법을 하나씩 설명하지 않습니다. 구성에 대한 첫 번째 Yii2.0 RESTful API 기본 구성 튜토리얼을 참조하세요.
Yii2 설치 .0
Composer를 통한 설치
Yii2.0을 설치하는 데 선호되는 방법입니다. Composer가 아직 설치되지 않은 경우 여기 지침에 따라 설치할 수 있습니다.
Composer를 설치한 후 다음 명령을 실행하여 Composer 자산 플러그인을 설치합니다.
composer global require "fxp/composer-asset-plugin:^1.2.0"
고급 애플리케이션 템플릿을 설치하려면 다음 명령을 실행합니다.
composer create-project yiisoft/yii2-app-advanced yii-api 2.0.14
백엔드 디렉터리를 복사하고 이름을 api
Open으로 지정합니다. apiconfigmain.php 및 ID, 컨트롤러 이름 공간 수정:
return [ 'id' => 'app-api', 'basePath' => dirname(__DIR__), 'controllerNamespace' => 'api\controllers', ]
고급 템플릿 초기화
초기화하기 전에 이 기사를 읽어 보세요
cd advanced php init
commonconfigmain.php를 열어 URL 라우팅 미화 규칙을 활성화하세요
'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ ], ],
commonconfigbootstrap.php 열기 다음 별칭을 추가하세요
Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');
ok 위 작업이 준비되었습니다. 본론으로 들어가겠습니다.
버전에 대한 자세한 내용은 권위 있는 가이드를 참조하세요. (PS: 주로 설명하지 않습니다. 어떻게 해야할지 모르겠습니다...)
내 이해:
Yii2 버전을 서로 다른 모듈로 이해할 수 있습니다. 각 버전은 공통 v1, v2 등과 같은 새로운 모듈입니다.
Building the module
모듈 생성 방법은 GII를 사용하여 생성할 수 있습니다.
Configuring GII
api/config/main-local.php 파일을 열고 다음과 같이 수정합니다.
if (!YII_ENV_TEST) { // configuration adjustments for 'dev' environment $config['bootstrap'][] = 'debug'; $config['modules']['debug'] = [ 'class' => 'yii\debug\Module', ]; $config['bootstrap'][] = 'gii'; $config['modules']['gii'] = [ 'class' => 'yii\gii\Module', 'allowedIPs' => ['127.0.0.1', '*'] ]; }
저는 기본적으로 GII에 대한 액세스를 허용하지 않는 Homestead를 사용하고 있기 때문에 여기에 있습니다. 따라서 'allowedIPs' => ['127.0.0.1', '*'] 를 추가해야 하며, 그렇지 않으면 Forbidden(#403) 필요에 따라 조정할 수 있습니다.
모듈 생성
을 구성하거나 구성하지 않으려면 브라우저에 http://your 호스트/gii를 입력하고 시작
을 클릭하세요. 모듈 클래스 및 입력: apimodulesv1Module
모듈 ID v1 입력, (일반적으로 자동으로 입력됩니다.)
미리보기를 클릭하세요
마지막으로 생성을 클릭하여 생성
열기 api/config/main.php 파일에서 모듈
'modules' => [ 'v1'=>[ 'class'=>'api\modules\v1\Module', ], ],
을 수정한 후 urlManager
'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [ ['class' => 'yii\rest\UrlRule', 'controller' => 'v1/default', 'extraPatterns'=>[ 'GET index'=>'index', ], ], ], ],
를 수정합니다. 위 내용을 바탕으로 Yii2.0 RESTFul API는 다음 주소를 통해 버전 관리를 구현합니다.
http://localhost/v1/defaults
To. 조금 더 말씀드리자면 위의 주소는 api/web 디렉터리에 매핑되어 있으니 직접 따라오세요. 실제 상황을 구성하세요
방금 생성된 모듈 파일 디렉터리를 열면 v1 디렉터리가 있는 것을 볼 수 있습니다. 디렉토리에는 컨트롤러와 뷰 디렉토리도 있습니다
, 방금 방문한 기본값은 실제로 이 두 파일이고 컨트롤러는 기존 웹 프로젝트처럼 뷰를 렌더링합니다
좋아요, 미래의 컨트롤러 코드는 module/v1/controllers에 배치
지금은 기본 GII에 의해 생성된 코드일 뿐입니다. 왜냐하면 우리는 API이기 때문에 일반적으로 views 디렉터리를 사용하지 않습니다.
새 나머지 컨트롤러 만들기
modulesv1controllers 아래에 새 UserController 만들기
<?php namespace api\modules\v1\controllers; use yii\rest\Controller; /** * User controller for the `v1` module */ class UserController extends Controller { /** * @return string */ public function actionIndex() { return 'this is v1/user'; } }
api/config/main.php
'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [ ['class' => 'yii\rest\UrlRule', 'controller' => 'v1/default', 'extraPatterns'=>[ 'GET index'=>'index', ], ], ['class' => 'yii\rest\UrlRule', 'controller' => 'v1/user', 'extraPatterns'=>[ 'GET index'=>'index', ], ], ], ],
방문해 보세요
http://localhost/v1/users/index
ok, 위는 Yii2.0 버전 관리가 구현되는 방법입니다.
형식화된 응답
api/config/main.php를 수정하고 구성요소 배열에 응답을 추가하세요
'response' => [ 'class' => 'yii\web\Response', 'on beforeSend' => function ($event) { $response = $event->sender; $response->data = [ 'success' => $response->isSuccessful, 'code' => $response->getStatusCode(), 'message' => $response->statusText, 'data' => $response->data, ]; $response->statusCode = 200; }, ],
위 내용은 Yii2.0 RESTful API 버전 관리 소개(코드 예시)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!