मेरे पास एक वस्तु "व्यवसाय" है और मैं इसे GraphQL में योजनाबद्ध करने का प्रयास कर रहा हूं। चूंकि दिनांक समय और समय ग्राफ़िकल पर डिफ़ॉल्ट रूप से उपलब्ध नहीं हैं, इसलिए मैं निम्नलिखित पुस्तकालय में आता हूं: github .

Business.graphql:

type Business {
    businessId: ID!
    name: String!
    createdAt: Date!
    closeHour: Time
}

दुर्भाग्य से पुस्तकालय केवल एक दिनांक समय प्रदान करता है। मैं CloseHour संपत्ति के लिए केवल "समय" (यानी 15:00 या 09:45) का उपयोग कैसे कर सकता हूं? क्या कोई अन्य पुस्तकालय है जो मदद कर सकता है?

0
3logy 22 अप्रैल 2020, 02:41

1 उत्तर

सबसे बढ़िया उत्तर

"दिनांक" और "दिनांक समय" मुश्किल हो सकता है। उदाहरण के लिए, "15:00" 3:00pm प्रशांत समय है?

कई (अधिकांश) कार्यान्वयन कुछ "युग" के संबंध में "डेटाटाइम" को बड़े पूर्णांक के रूप में संग्रहीत करके समस्या का समाधान करते हैं। उदाहरण के लिए, "0" "1 जनवरी, 1970 के बाद से सेकंड की संख्या" का प्रतिनिधित्व कर सकता है।

शायद आप अपने ग्राफ़क्यूएल "डेटटाइम" को आईएसओ 8601 स्ट्रिंग के रूप में संग्रहीत करने या इस मॉड्यूल का उपयोग करने पर विचार कर सकते हैं: https://www.npmjs.com/package/graphql-iso-date


"स्कीमा" स्तर पर (बनाम जेएस कोड, जैसा कि मैंने ऊपर सुझाव दिया है), आप इस पर विचार कर सकते हैं:

ग्राफक्यूएल स्पेक

3.5 स्केलर:

Scalars ScalarTypeDefinition DescriptionoptscalarNameDirectivesConstopt स्केलर प्रकार एक GraphQL प्रकार प्रणाली में आदिम पत्ती मूल्यों का प्रतिनिधित्व करते हैं। ग्राफक्यूएल प्रतिक्रियाएं एक पदानुक्रमित पेड़ का रूप लेती हैं; इन पेड़ों पर पत्तियाँ GraphQL अदिश होती हैं।

सभी ग्राफक्यूएल स्केलर स्ट्रिंग्स के रूप में प्रतिनिधित्व योग्य हैं, हालांकि उपयोग किए जा रहे प्रतिक्रिया प्रारूप के आधार पर, दिए गए स्केलर प्रकार के लिए एक अधिक उपयुक्त आदिम हो सकता है, और सर्वर को उपयुक्त होने पर उन प्रकारों का उपयोग करना चाहिए।

GraphQL कई बिल्ट-इन स्केलर प्रदान करता है, लेकिन टाइप सिस्टम सिमेंटिक अर्थ के साथ अतिरिक्त स्केलर जोड़ सकते हैं। उदाहरण के लिए, एक ग्राफक्यूएल सिस्टम टाइम नामक एक स्केलर को परिभाषित कर सकता है, जो एक स्ट्रिंग के रूप में क्रमबद्ध होने पर, आईएसओ 8601 के अनुरूप होने का वादा करता है। समय प्रकार के क्षेत्र की क्वेरी करते समय, आप आईएसओ-8601 पार्सर के साथ परिणाम को पार्स करने की क्षमता पर भरोसा कर सकते हैं और समय के लिए क्लाइंट-विशिष्ट आदिम का उपयोग कर सकते हैं।

0
FoggyDay 23 अप्रैल 2020, 21:48