가이드

프롤로그

Orion for Laravel 2.0의 변경 사항과 새로운 기능을 알아봅니다.

릴리스 노트

OpenAPI 명세 생성

이제 다음 명령어를 실행하는 것만으로 Orion 기반의 모든 엔드포인트에 대한 OpenAPI 명세를 자동으로 생성할 수 있습니다.

php artisan orion:specs

이 기능에 대한 자세한 내용은 이 가이드의 명세 섹션에서 확인할 수 있습니다.

JSON 필드 검색

2.0 릴리스는 JSON 필드 지원을 도입하여 검색 기능을 한층 강화합니다.

// (POST) https://myapp.com/api/posts/search
{
    "filters" : [
        {"field" : "options->visible", "operator" : ">=", "value" : true},
    ],
    "search" : {
        "value" : "Example post"
    },
    "sort" : [
        {"field" : "options->key", "direction" : "asc"},
    ]
}

JSON 필드 내부의 필드를 허용 목록에 등록하려면 화살표 표기법을 사용하세요.

<?php

namespace App\Http\Controllers\Api;

use Orion\Http\Controllers\Controller;

// 여기서 options 필드는 Post 모델의 json/jsonb 필드입니다
// visible과 key 필드는 해당 json/jsonb 필드 내부의 필드입니다
class PostsController extends Controller
{
    public function filterableBy() : array
    {
        return ['options->visible'];
    }

    public function searchableBy() : array
    {
        return [ 'options->key'];
    }

    public function sortableBy() : array
    {
         return ['options->key'];
    }
}

중첩 연관관계 검색

이전에는 연관관계 필드에 대한 검색이 한 단계 깊이까지만 가능했습니다. 예:

public function searchableBy() : array
{
    return ['user.name']; // user 관계의 name 필드
}

이번 릴리스부터는 깊게 중첩된 연관관계에 대해서도 검색을 수행할 수 있습니다.

public function searchableBy() : array
{
    return ['user.name', 'user.location.address.postalcode']; // 깊게 중첩된 user.location.address 관계의 postalcode 필드
}

훅 메서드 시그니처

이제 연관관계 컨트롤러의 훅 메서드에 부모 엔티티가 전달됩니다. 예:

protected function afterSave(Request $request, Model $parentEntity, Model $entity)

기본 인증 가드 결정

이제 기본 인증 가드는 orion.php 설정 파일의 auth.guard 키에서 결정됩니다.

인증 가드나 사용자 결정을 더 세밀하게 제어해야 하는 경우, 여전히 컨트롤러에서 resolveUser 메서드를 오버라이드할 수 있습니다.

ilikenot ilike 연산자 지원

// (POST) https://myapp.com/api/posts/search
{
    "filters" : [
        {"field" : "title", "operator" : "ilike", "value" : "example post"},
    ]
}

업그레이드 가이드

이 가이드는 Laravel Orion을 v1.x에서 v2.x로 업그레이드하는 과정을 다룹니다.

PHP 7.3 필요

최소 PHP 버전이 7.3.0으로 상향되었습니다.

의존성 업데이트

composer.json 파일에서 다음 의존성을 업데이트하세요.

  • php>=7.3으로
  • tailflow/laravel-orion^2.0으로

설정 파일 퍼블리싱

이번 릴리스에서는 orion.php 설정 파일이 도입되어, 기본 인증 드라이버와 명세 생성에 사용되는 API 정보를 커스터마이징할 수 있습니다.

설정 파일을 퍼블리싱하려면 다음 명령어를 실행하세요.

php artisan vendor:publish --tag=orion-config

허용 목록 메서드 시그니처

다음 메서드가 public으로 변경되었습니다.

  • exposedScopes
  • filterableBy
  • searchableBy
  • sortableBy
  • includes
  • alwaysIncludes

이 메서드들을 오버라이드한 경우, 컨트롤러를 그에 맞게 업데이트하세요.

훅 메서드 시그니처

2.0 릴리스부터 훅 메서드에 부모 엔티티가 전달됩니다. 훅 메서드를 오버라이드한 경우, 연관관계 컨트롤러를 그에 맞게 업데이트하세요.

예시는 다음과 같습니다.

2.0 이전

protected function afterSave(Request $request, Model $entity)

2.0 이후

protected function afterSave(Request $request, Model $parentEntity, Model $entity)