Scalari Personalizați (Custom Scalars): DateTime, JSON și BigInt în GraphQL în GraphQL

Sintaxă
scalar DateTime; scalar JSON; scalar BigInt

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.

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Scalari Personalizați (Custom Scalars): DateTime, JSON și BigInt în GraphQL

Ai o nelămurire despre utilizarea comenzii Scalari Personalizați (Custom Scalars): DateTime, JSON și BigInt în GraphQL sau 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.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.