>백엔드 개발 >PHP 튜토리얼 >Yii2.0 RESTful API 버전 관리 소개(코드 예시)

Yii2.0 RESTful API 버전 관리 소개(코드 예시)

不言
不言앞으로
2019-01-10 11:27:022674검색

이 글은 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 입력, (일반적으로 자동으로 입력됩니다.)

미리보기를 클릭하세요

Yii2.0 RESTful API 버전 관리 소개(코드 예시)

마지막으로 생성을 클릭하여 생성

Yii2.0 RESTful API 버전 관리 소개(코드 예시)

구성 모듈

을 클릭하세요.

열기 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 &#39;this is v1/user&#39;;
    }
}

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제