티스토리 뷰
기본적으로 사용할 수 있는 Scalar 타입은 정해져있다.
//http://webonyx.github.io/graphql-php/type-definitions/scalars/
use GraphQL\Type\Definition\Type;
// Built-in Scalar types:
Type::string(); // String type
Type::int(); // Int type
Type::float(); // Float type
Type::boolean(); // Boolean type
Type::id(); // ID type
그 외에 필요한 타입은 커스텀하여 사용하여야하는데, 대표적으로 Date, DateTime 타입이 없는지 아쉬운 부분이다.
그래도 친절하게 필요한 타입을 정의하여 사용할 수 있도록 되어있어서 다행이다.
자세한 내용은 아래를 참고해서 추가하면된다.
http://webonyx.github.io/graphql-php/type-definitions/scalars/
<?php
use GraphQL\Language\Parser;
use GraphQL\Utils\BuildSchema;
use GraphQL\Utils\AST;
$cacheFilename = 'cached_schema.php';
if (!file_exists($cacheFilename)) {
$document = Parser::parse(file_get_contents('./schema.graphql'));
file_put_contents($cacheFilename, "<?php\nreturn " . var_export(AST::toArray($document), true) . ";\n");
} else {
$document = AST::fromArray(require $cacheFilename); // fromArray() is a lazy operation as well
}
$typeConfigDecorator = function () {
if ($typeConfig['name'] === 'Date') {
$typeConfig = array_merge($typeConfig, [
'serialize' => function($value) {
if (! $value instanceof DateTimeImmutable) {
$value = new DateTime($value);
}
return $value->format('Y-m-d');
},
'parseValue' => function($value) {
return DateTimeImmutable::createFromFormat('YYYY-MM-DD', $value) ?: null;
},
'parseLiteral' => function($ast) {
if ($ast instanceof StringValueNode) {
return $ast->value;
} elseif (isset($ast->value)) {
return $ast->value;
}
return null;
}
]);
};
$schema = BuildSchema::build($document, $typeConfigDecorator);
...
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- l5-swagger-response
- Laravel
- 메일
- php-laravel
- 정의
- 라라벨
- addMonthWithoutOverflow
- 정규식
- laravel-kafka
- exception-test
- MySQL
- bitwarden-cli
- password-manager
- django
- Python
- eloquent-observer
- redis
- laravel-test
- addMonth
- POP3
- graphql
- 자바스크립트
- session+token authorize
- php
- l5-swagger
- 테스트_다중트랜잭션
- vim
- observer 매개변수 전달하기
- graphql-php
- aaa패턴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함