프롤로그
릴리스 노트
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 메서드를 오버라이드할 수 있습니다.
ilike 및 not 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으로 변경되었습니다.
exposedScopesfilterableBysearchableBysortableByincludesalwaysIncludes
이 메서드들을 오버라이드한 경우, 컨트롤러를 그에 맞게 업데이트하세요.
훅 메서드 시그니처
2.0 릴리스부터 훅 메서드에 부모 엔티티가 전달됩니다. 훅 메서드를 오버라이드한 경우, 연관관계 컨트롤러를 그에 맞게 업데이트하세요.
예시는 다음과 같습니다.
2.0 이전
protected function afterSave(Request $request, Model $entity)
2.0 이후
protected function afterSave(Request $request, Model $parentEntity, Model $entity)