Tipurile scalare de bază GraphQL (`Int`, `Float`, `String`, `Boolean`, `ID`) sunt adesea insuficiente pentru date reale complexe. Scalarii personalizați permit definirea unor tipuri precum `DateTime` (format ISO-8601), `JSON` (obiect arbitrar fără schemă) sau `BigInt` (numere mari de 64 de biți), incluzând validare strictă prin metodele `serialize`, `parseValue` și `parseLiteral` (parsare AST).
Validare și Serializare Tipizată la Nivel de Câmp
Garantează respingerea cererilor cu date calendaristice malformate înainte de a ajunge în funcțiile de rezolvare (resolvers).
import { GraphQLScalarType, Kind } from 'graphql';
export const DateTimeScalar = new GraphQLScalarType({
name: 'DateTime',
description: 'Reprezentare dată/oră în format ISO-8601',
serialize(value: any) {
return value instanceof Date ? value.toISOString() : null;
},
parseValue(value: any) {
return new Date(value);
},
parseLiteral(ast) {
if (ast.kind === Kind.STRING) {
return new Date(ast.value);
}
return null;
}
});
Utilizarea corectă a acestei funcționalități în arhitectura GraphQL garantează o comunicare optimă între client și server, elimină supra-încărcarea rețelei și asigură scalabilitatea sistemelor moderne.
Întrebări & Exemple de Cod:
Scalari Personalizați (Custom Scalars): DateTime, JSON și BigInt în GraphQLAi o nelămurire despre utilizarea comenzii
Scalari Personalizați (Custom Scalars): DateTime, JSON și BigInt în GraphQLsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.