GraphQL Scalars 1.0이 출시되었습니다!
5848 단어 graphqlscalarsgraphql
This article was published on 2019-08-08 by @ The Guild Blog
GraphQL 사양에는 기본적으로
Int
, Float
, String
, Boolean
및 ID
스칼라 유형이 있습니다. 이러한 스칼라 유형은 클라이언트와 서버 간에 데이터를 전송하기 전에 데이터를 식별하고 유효성을 검사하는 데 도움이 됩니다. 그러나 앱 데이터를 더 잘 설명하고 검증하는 데 도움이 되도록 GraphQL 애플리케이션에 더 구체적인 스칼라가 필요할 수 있습니다.스칼라를 사용한 검증
예를 들어 String
필드가 있지만 정규식을 사용하여 향후 또는 진행 중인 문자열 데이터의 유효성을 검사해야 합니다. 따라서 각 끝에 이 유효성 검사가 있어야 합니다. 하나는 클라이언트에 있고 다른 하나는 서버에 있으며 소스에 다른 하나가 있을 수 있습니다. 프로젝트의 다른 부분에서 동일한 논리를 복제하는 대신 GraphQL 내부에서 유효성 검사를 수행하는 EmailAddress
스칼라 유형을 사용할 수 있습니다.
직렬화 및 구문 분석
GraphQL 스칼라 유형을 사용하는 다른 이점은 데이터를 전송하는 동안 구문 분석 및 직렬화하는 것입니다. 예를 들어 DateTime
데이터를 가지고 있지만 JSON의 제약으로 인해 String
로 전송되고, 데이터를 받아 전달할 때마다 문자열을 파싱하고 자바스크립트Date
인스턴스를 생성하면서 직렬화도 해야 한다. 클라이언트에 전달하기 전에 문자열로 변환합니다. 구현에 해당 논리를 사용하는 대신 DateTime
스칼라를 사용할 수 있으며 문자열, 숫자 및 부울과 같은 기본 유형 중 하나인 것처럼 네이티브 JavaScriptDate
인스턴스로 직접 작업할 수 있습니다.
새로운 기능은 무엇입니까?
We've 최근 OK-Grow!의 놀라운 팀의 GraphQL-Scalars 라이브러리 중!
그 이후로 TypeScript를 사용하여 라이브러리를 완전히 다시 작성하고, 모든 종속성을 업그레이드하고, 모든 문제와 PR을 닫고, BigInt(Long)
, GUID
, HexColorCode
, Hexadecimal
와 같은 새로운 스칼라로 패키지의 스칼라 수를 늘렸습니다. IPv4
, IPv6
, ISBN
, MAC
, JSON
등. README 에서 모든 스칼라를 볼 수 있습니다.
조롱
Apollo Server는 Int
, String
, Float
, ID
및 Boolean
와 같은 모의 내장 스칼라를 제공합니다. 스칼라에 대해 동일한 것이 필요하면 어떻게 합니까? 따라서 이 패키지의 각 스칼라에 대한 모의 기능을 제공합니다. 스키마를 조롱하기 위해 서버에 쉽게 추가할 수 있습니다.
import { ApolloServer } from 'apollo-server'
import { makeExecutableSchema } from 'graphql-tools'
// import all scalars and resolvers
import { typeDefs, resolvers, mocks } from 'graphql-scalars'
// Alternatively, import individual scalars and resolvers
// import { DateTimeResolver, DateTimeTypeDefinition, DateTimeMock, ... } from "graphql-scalars"
const server = new ApolloServer({
typeDefs: [
// use spread syntax to add scalar definitions to your schema
...typeDefs
// DateTimeDefinition,
// ...
// ... other type definitions ...
],
resolvers: {
// use spread syntax to add scalar resolvers to your resolver map
...resolvers
// DateTimeResolver,
// ...
// ... remainder of resolver map ...
},
mocks: {
// use spread syntax to add scalar resolvers to your resolver map
...mocks
// DateTimeMock,
// ...
// ... other mocks ...
}
})
특별한 감사
이 패키지를 만든 OK-Grow, adriano-di-giovanni, npm에 대한 graphql-scalars
이름 제공, 그의 포크에서 다른 스칼라 구현을 가져올 수 있는 Saeris, stems에 대한 graphql-bigint
감사합니다. ) 패키지, abhiaiyer91 그의 graphql-currency-scalars
패키지 및 taion 그의 graphql-type-json
.
Reference
이 문제에 관하여(GraphQL Scalars 1.0이 출시되었습니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/the-guild/graphql-scalars-1-0-is-out-51mn
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
GraphQL 스칼라 유형을 사용하는 다른 이점은 데이터를 전송하는 동안 구문 분석 및 직렬화하는 것입니다. 예를 들어
DateTime
데이터를 가지고 있지만 JSON의 제약으로 인해 String
로 전송되고, 데이터를 받아 전달할 때마다 문자열을 파싱하고 자바스크립트Date
인스턴스를 생성하면서 직렬화도 해야 한다. 클라이언트에 전달하기 전에 문자열로 변환합니다. 구현에 해당 논리를 사용하는 대신 DateTime
스칼라를 사용할 수 있으며 문자열, 숫자 및 부울과 같은 기본 유형 중 하나인 것처럼 네이티브 JavaScriptDate
인스턴스로 직접 작업할 수 있습니다.새로운 기능은 무엇입니까?
We've 최근 OK-Grow!의 놀라운 팀의 GraphQL-Scalars 라이브러리 중!
그 이후로 TypeScript를 사용하여 라이브러리를 완전히 다시 작성하고, 모든 종속성을 업그레이드하고, 모든 문제와 PR을 닫고, BigInt(Long)
, GUID
, HexColorCode
, Hexadecimal
와 같은 새로운 스칼라로 패키지의 스칼라 수를 늘렸습니다. IPv4
, IPv6
, ISBN
, MAC
, JSON
등. README 에서 모든 스칼라를 볼 수 있습니다.
조롱
Apollo Server는 Int
, String
, Float
, ID
및 Boolean
와 같은 모의 내장 스칼라를 제공합니다. 스칼라에 대해 동일한 것이 필요하면 어떻게 합니까? 따라서 이 패키지의 각 스칼라에 대한 모의 기능을 제공합니다. 스키마를 조롱하기 위해 서버에 쉽게 추가할 수 있습니다.
import { ApolloServer } from 'apollo-server'
import { makeExecutableSchema } from 'graphql-tools'
// import all scalars and resolvers
import { typeDefs, resolvers, mocks } from 'graphql-scalars'
// Alternatively, import individual scalars and resolvers
// import { DateTimeResolver, DateTimeTypeDefinition, DateTimeMock, ... } from "graphql-scalars"
const server = new ApolloServer({
typeDefs: [
// use spread syntax to add scalar definitions to your schema
...typeDefs
// DateTimeDefinition,
// ...
// ... other type definitions ...
],
resolvers: {
// use spread syntax to add scalar resolvers to your resolver map
...resolvers
// DateTimeResolver,
// ...
// ... remainder of resolver map ...
},
mocks: {
// use spread syntax to add scalar resolvers to your resolver map
...mocks
// DateTimeMock,
// ...
// ... other mocks ...
}
})
특별한 감사
이 패키지를 만든 OK-Grow, adriano-di-giovanni, npm에 대한 graphql-scalars
이름 제공, 그의 포크에서 다른 스칼라 구현을 가져올 수 있는 Saeris, stems에 대한 graphql-bigint
감사합니다. ) 패키지, abhiaiyer91 그의 graphql-currency-scalars
패키지 및 taion 그의 graphql-type-json
.
Reference
이 문제에 관하여(GraphQL Scalars 1.0이 출시되었습니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/the-guild/graphql-scalars-1-0-is-out-51mn
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Apollo Server는
Int
, String
, Float
, ID
및 Boolean
와 같은 모의 내장 스칼라를 제공합니다. 스칼라에 대해 동일한 것이 필요하면 어떻게 합니까? 따라서 이 패키지의 각 스칼라에 대한 모의 기능을 제공합니다. 스키마를 조롱하기 위해 서버에 쉽게 추가할 수 있습니다.import { ApolloServer } from 'apollo-server'
import { makeExecutableSchema } from 'graphql-tools'
// import all scalars and resolvers
import { typeDefs, resolvers, mocks } from 'graphql-scalars'
// Alternatively, import individual scalars and resolvers
// import { DateTimeResolver, DateTimeTypeDefinition, DateTimeMock, ... } from "graphql-scalars"
const server = new ApolloServer({
typeDefs: [
// use spread syntax to add scalar definitions to your schema
...typeDefs
// DateTimeDefinition,
// ...
// ... other type definitions ...
],
resolvers: {
// use spread syntax to add scalar resolvers to your resolver map
...resolvers
// DateTimeResolver,
// ...
// ... remainder of resolver map ...
},
mocks: {
// use spread syntax to add scalar resolvers to your resolver map
...mocks
// DateTimeMock,
// ...
// ... other mocks ...
}
})
특별한 감사
이 패키지를 만든 OK-Grow, adriano-di-giovanni, npm에 대한 graphql-scalars
이름 제공, 그의 포크에서 다른 스칼라 구현을 가져올 수 있는 Saeris, stems에 대한 graphql-bigint
감사합니다. ) 패키지, abhiaiyer91 그의 graphql-currency-scalars
패키지 및 taion 그의 graphql-type-json
.
Reference
이 문제에 관하여(GraphQL Scalars 1.0이 출시되었습니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/the-guild/graphql-scalars-1-0-is-out-51mn
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(GraphQL Scalars 1.0이 출시되었습니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/the-guild/graphql-scalars-1-0-is-out-51mn텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)