A GraphQL a hagyományos RESTful API -k hatékony alternatívájaként jelent meg, amely hatékonyabb és rugalmasabb módszert kínál az adatok lekérdezésére. Tapasztalt sínek eladójaként kiváltságom volt a GraphQL bevezetése számos Rails alkalmazásban, tanúja annak, hogy az első kézből tanúja legyen a fejlesztési folyamatra és a végfelhasználói élményre gyakorolt átalakító hatással. Ebben a blogbejegyzésben megosztom egy lépésről lépésre irányuló útmutatót arról, hogyan lehet beállítani a GraphQL-t egy Rails alkalmazásban, néhány bevált gyakorlat és megfontolás mellett.
Előfeltételek
Mielőtt belemerülne a beállítási folyamatba, győződjön meg arról, hogy a következőket telepítette -e a gépére:
- Ruby (2.5 vagy újabb verzió)
- Sínek (5.2 vagy újabb verzió)
- Kötegelő
1. lépés: Hozzon létre egy új Rails alkalmazást
Ha a semmiből indul, hozzon létre egy új Rails alkalmazást a következő parancs segítségével:
sínek új gráfql_rails_app cd grafikl_rails_app
2. lépés: Adja hozzá a GraphQL GEM -t
A GraphQL használatához a Rails alkalmazásban hozzá kell adnia aGraphQLGem aGemfile- Nyissa ki aGemfileKedvenc szövegszerkesztőjében, és adja hozzá a következő sort:
Gem 'Graphql'
Ezután futtassacsomag telepítéseA drágakő telepítéséhez.
3. lépés: Készítsen egy GraphQL sémát
A GraphQL séma meghatározza az API -ban rendelkezésre álló típusokat és műveleteket. Az alapsáma előállításához futtassa a következő parancsot:
A sínek generálják a GraphQL -t: Telepítés
Ez a parancs létrehozza aGraphQLkönyvtár aalkalmazáskönyvtár, aütemterv.rbfájl. Aütemterv.rbA fájl a GraphQL séma belépési pontja.
4. lépés: Határozza meg a típusokat
A GraphQL -ben a típusok a lekérdezhető adatokat képviselik. Az alkalmazás modelljei alapján meghatározhatja az egyedi típusokat. Tegyük fel például, hogy van egyFelhasználóModell a Rails alkalmazásban. Meghatározhatja a megfelelőtUserTypeA GraphQL sémájában.
Nyissa ki aApp/graphql/types/user_type.rbFájl és adja hozzá a következő kódot:
modultípusok osztály usertype <types :: baseObject mező: azonosító, id, null: hamis mező: név, karakterlánc, null: hamis mező: e -mail, karakterlánc, null: hamis vége
Ez a kód meghatározza aUserTypeHárom mezővel:személyazonosság,név, ésemail-
5. lépés: Határozza meg a lekérdezéseket
A lekérdezéseket az adatok leolvasására használják a szerverről. Meghatározhatja az egyedi lekérdezéseket a GraphQL sémájában. Nyissa ki aApp/graphql/type/query_type.rbFájl és adja hozzá a következő kódot:
modultípusok osztály queryType <Típusok :: baseObject mező: Felhasználók, [Típusok :: UserType], NULL: FALSE DEF Felhasználók.
Ez a kód meghatározza afelhasználóklekérdezés, amely az alkalmazás összes felhasználójának listáját adja vissza.
6. lépés: Frissítse a sémát
Nyissa ki aApp/Graphql/Schema.rbfájl és győződjön meg arról, hogy aQueryType- A fájlnak így kell kinéznie:


Osztály ApplicationSchema <Graphql :: séma lekérdezés típusai :: QueryType End
7. lépés: Állítsa be a GraphQL végpontot
Ahhoz, hogy a GraphQL API hozzáférhető legyen, be kell állítania egy végpontot a Rails alkalmazásban. Nyissa ki aconfig/routes.rbFájl és adja hozzá a következő kódot:
Rails.Application.Routes.Draw Do Post '/Graphql', to: 'Graphql#Execute' End
Ezután hozzon létre aGraphQlControllerA GraphQL kérések kezelése. Futtassa a következő parancsot:
sínek generálják a Graphql végrehajtás vezérlőt
Nyissa ki aApp/Controlers/Graphql_Controller.rbFájl és adja hozzá a következő kódot:
Osztály GraphqlController <ApplicationController def végrehajtása lekérdezés = params [: lekérdezés] változók = csész_hash (params [: változók]) eredmény = Applicationschema.Execute (lekérdezés, változók: Változók) JSON JSON: EREDMÉNY ELSŐ PRIGNEF DEF CONEPLE_HASH (AmbiGuous_Param) Case Ambigaving_param, ha a karakterlánc, ha egyértelmű, ha egyértelmûen_perment? csész_hash (json.parse (ambigauus_param)) else {} vége, ha hash, ActionController :: Paraméterek AmbiGuous_Param, amikor nulla {} egyébként emeli fel az argumentError -ot, "Váratlan paraméter: #{ambigauus_param}" Vége vége vége vége vége
8. lépés: Tesztelje a GraphQL API -t
Használhat olyan eszközöket, mintGrafikqlA GraphQL API teszteléséhez. A GraphiQL egy böngészőn belüli IDE a GraphQL API-k feltárására. A Graphiql használatához a Rails alkalmazásban adja hozzá a következő kódotconfig/routes.rbFájl:
Ha rails.env.Development? Mount Graphiql :: Rails :: Motor, AT: "/grafiql", grafikql_path: "/grafikql" end
Most hozzáférhet a grafikql -hezhttp: // localhost: 3000/grafiqlA böngészőjében. Írhat lekérdezéseket, és valós időben láthatja az eredményeket.
A bevált gyakorlatok és megfontolások
- Engedélyezés: Végezzen el megfelelő engedélyezési mechanizmusokat annak biztosítása érdekében, hogy csak a hitelesített felhasználók férhessenek hozzá bizonyos lekérdezésekhez és mutációkhoz.
- Gyorsítótárazás: Használjon gyorsítótárazási stratégiákat a GraphQL API teljesítményének javításához.
- Hibakezelés: Végezzen robusztus hibakezelést, hogy értelmes hibaüzeneteket biztosítson az ügyfelek számára.
Sínünk kínálata
Rails-eladóként a kiváló minőségű sínekkatermékek széles skáláját kínáljuk, beleértve a60E1A1 vasút,Brit standard BSC28 acél sín, és25 font Asce acél sín- Ezeket a síneket úgy tervezték, hogy megfeleljenek a legmagasabb ipari előírásoknak, és különféle alkalmazásokhoz alkalmasak.
Vegye fel velünk a kapcsolatot a beszerzés céljából
Ha érdekli a sínek megvásárlása, vagy bármilyen kérdése van a GraphQL beállításával kapcsolatban a Rails alkalmazásban, szeretnénk hallani rólad. Vegye fel velünk a kapcsolatot, hogy elindítsa a beszerzési vitát, és keresse meg az Ön igényeinek legjobb megoldásait.
Referenciák
- Sínekes dokumentáció
- GraphQL dokumentáció
