2015-08-23 6 views
6

में कस्टम ऑब्जेक्ट्स की सूची कैसे बनाएं, मैं वर्तमान में फेसबुक की नई तकनीक के समूह के साथ खेल रहा हूं।ग्राफक्ल्यू

मुझे ग्राफQL स्कीमा के साथ एक छोटी सी समस्या है।

{ 
     id: '1', 
     participants: ['A', 'B'], 
     messages: [ 
      { 
       content: 'Hi there', 
       sender: 'A' 
      }, 
      { 
       content: 'Hey! How are you doing?', 
       sender: 'B' 
      }, 
      { 
       content: 'Pretty good and you?', 
       sender: 'A' 
      }, 
     ]; 
    } 

अब मैं इस के लिए एक GraphQL मॉडल बनाना चाहते हैं: मैंने किसी चीज़ के इस मॉडल की है। मैंने यह किया:

var theadType = new GraphQLObjectType({ 
    name: 'Thread', 
    description: 'A Thread', 
    fields:() => ({ 
    id: { 
     type: new GraphQLNonNull(GraphQLString), 
     description: 'id of the thread' 
    }, 
    participants: { 
     type: new GraphQLList(GraphQLString), 
     description: 'Participants of thread' 
    }, 
    messages: { 
     type: new GraphQLList(), 
     description: 'Messages in thread' 
    } 

    }) 
}); 

मुझे पता है कि डेटा को पहले स्थान पर बनाने के लिए और अधिक शानदार तरीके हैं। लेकिन प्रयोग करने के लिए, मैं इसे इस तरह से आजमाने की कोशिश करता था।

सब कुछ ठीक है, मेरे संदेश सरणी के अलावा, क्योंकि मैं ऐरे प्रकार निर्दिष्ट नहीं करता हूं। मुझे यह निर्दिष्ट करना होगा कि उस सरणी में किस प्रकार का डेटा जाता है। लेकिन चूंकि यह एक कस्टम ऑब्जेक्ट है, इसलिए मुझे नहीं पता कि GraphQLList() में क्या जाना है।

कोई विचार यह है कि संदेशों को स्वयं के प्रकार बनाने के अलावा इसे कैसे हल किया जाए?

उत्तर

7

आप अपने स्वयं के कस्टम messageType उसी तरह आप theadType परिभाषित परिभाषित कर सकते हैं, और फिर आप new GraphQLList(messageType) निर्दिष्ट करने के लिए करते हैं संदेशों की अपनी सूची का प्रकार।

+0

प्रतिक्रिया के लिए धन्यवाद नहीं चाहते हैं, मुझे एक समस्या है "..एक उप चयन है।" जब मैं उप-तत्व के लिए अनुरोध करता हूं। क्या आप संदेशों को लाने के लिए क्वेरी प्राप्त करने का एक उदाहरण दे सकते हैं। –

0

मुझे नहीं लगता कि आप इसे ग्राफQL में कर सकते हैं। सोचें कि यह "घटक सभी" मांगने के खिलाफ प्रत्येक घटक में "आपको चाहिए" फ़ील्ड के लिए पूछने के ग्राफक्लु दर्शन के खिलाफ थोड़ा सा है।

जब ऐप स्केल करता है, तो आपका दृष्टिकोण डेटा के उच्च भार को साबित कर देगा। मुझे पता है कि लाइब्रेरी का परीक्षण करने के उद्देश्य से थोड़ा अधिक दिखता है लेकिन ऐसा लगता है कि यह डिज़ाइन किया गया है। वर्तमान GraphQL पुस्तकालय (0.2.6) में अनुमति दी प्रकार हैं:

  • GraphQLSchema
  • GraphQLScalarType
  • GraphQLObjectType
  • GraphQLInterfaceType
  • GraphQLUnionType
  • GraphQLEnumType
  • GraphQLInputObjectType
  • GraphQLList
  • 0,123,
  • GraphQLNonNull
  • GraphQLInt
  • GraphQLFloat
  • GraphQLString
  • GraphQLBoolean
  • GraphQLID
+1

डाउनवोट क्यों? जैसा कि पीटर हिल्टन ने कहा था कि आपको अपनी इच्छित चीज़ों को प्राप्त करने के लिए ग्राफ़क्लुएलिस्ट का उपयोग करना होगा, लेकिन आपने स्पष्ट रूप से कहा था कि आप – MaC