2016-06-26 14 views
8

Chcę zbudować aplikację internetową z JavaScript dla interfejsu i C# dla zaplecza i chcę określić wartość GraphQL.Jak połączyć schemat w "GraphQL dla .NET" i "Relay"?

  • Dla mojego C# back end używam implementacji GraphQL o nazwie GraphQL for .NET.
  • Dla mojego przedniego końca, chciałbym użyć Relay, ponieważ gra dobrze z ReactJS.

teraz na plecach koniec I wdrożone przykładowy schemat jak w one of the examples który wygląda tak:

public class StarWarsSchema : Schema 
{ 
    public StarWarsSchema() 
    { 
     Query = new StarWarsQuery(); 
    } 
} 

W moim przednim końcu, teraz trzeba powiedzieć Relay jakoś o tym schemacie. Przynajmniej to rozumiem podczas przechodzenia przez samouczki, ponieważ z jakiegoś powodu zapytania GraphQL muszą zostać transponowane. To jest przykład jak jak chciałbym, aby załadować wszystkie Droids:

class Content extends React.Component<ContentProps, { }> { 
    ... 
} 

export default Relay.createContainer(Content, { 
    fragments: { 
     viewer:() => Relay.QL` 
      fragment on User { 
       query HeroNameQuery { 
        droids { 
         id 
         name 
        } 
       } 
      } 
     `, 
    } 
}); 

W one of the examples dla przekaźnika, widziałem, że babel-relay-plugin służy do konwersji. Otrzymuje plik schematu (JSON). Przekaźnik przekaźnika Getting Started pokazuje, jak utworzyć taki schemat za pomocą graphql-js i graphql-relay-js.

Teraz moje pytania:

  1. Czy naprawdę trzeba tworzyć schematy na przedniej i na tylnej końca?
  2. Jaki jest sens nauczania Przekaż mój schemat, ponieważ back-end już korzysta ze schematu, aby zwrócić dobrze uformowane dane?
  3. Jakie są korzyści z używania przekaźnika w tym scenariuszu? Co mógłbym stracić, gdybym po prostu uzyskał dostęp do zaplecza za pośrednictwem regularnego punktu końcowego REST wraz z zapytaniem GraphQL jako parametrem?

Odpowiedz

5
  1. Trzeba schematu tylko na backend i można go pobrać schema.json z backend przy użyciu przykład w dolnej części tego dokumentu: https://facebook.github.io/relay/docs/guides-babel-plugin.html
  2. schematu potrzeba Relay prawidłowo skonstruować zapytania i zrozumieć rodzaje zwróciło dane.
  3. Przekaźnik zawija komponenty React i pobiera/dostarcza wszystkie niezbędne dane do renderowania. Posiada wiele funkcji, takich jak buforowanie danych, konsolidacja zapytań, więc dzięki Relay nie trzeba niczego pobierać i martwić się o to, jak dane są dostarczane do komponentu, wystarczy pisać zapytania i komponenty.
+0

Dziękuję za wyjaśnienia. Tymczasem zdałem sobie sprawę, że schema.json jest potrzebny w procesie transpozycji podczas budowania kodu frontendowego z zapytań GraphQL. –

Powiązane problemy