Ինչպես ստուգել GraphQL Formatter-ի աշխատանքը GraphQL հարցման և դատարկ մուտքի դեպքում
Դատարկ կամ միայն բացատներից կազմված մուտքը վերադարձնում է դատարկ արդյունք, իսկ ոչ դատարկ GraphQL տեքստի ձևաչափված արդյունքը այս տարբերակում չի վերադարձվում։
Գործիքի վարքի ընդհանուր պատկերը
GraphQL Formatter-ը նախատեսված է GraphQL հարցման կամ սխեմայի տեքստ ընդունելու համար, սակայն վերանայված վարքը կարևոր տարբերություն ունի սովորական ձևաչափիչի սպասումներից։ Դատարկ կամ միայն բացատներից կազմված մուտքը հաջողությամբ ավարտվում է և վերադարձնում է դատարկ ձևաչափված տեքստ։ Ոչ դատարկ տեքստի դեպքում ոչ գեղեցկացումը, ոչ սեղմումը չեն հասնում հաջող ձևաչափված պատասխանի վերադարձին։
Այս պատճառով գործիքը կարելի է օգտագործել նախևառաջ մուտքի պայմաններն ու վերադարձվող արդյունքի ձևը հասկանալու համար։ Դատարկ փորձը ցույց է տալիս, թե ինչ է ստացվում առանց GraphQL բովանդակության, իսկ ոչ դատարկ փորձը սահմանում է այն իրավիճակը, որում պատրաստի ձևաչափված տեքստ չի վերադարձվում։ Այդ արդյունքներից չի կարելի եզրակացնել, որ հարցումը վերլուծվել, ստուգվել կամ կատարվել է։
Եթե նպատակն է ստուգել կոնկրետ մուտք, նախ առանձնացրեք երկու դեպք՝ դատարկ արժեք և բովանդակություն ունեցող արժեք։ Այս բաժանումը օգնում է չշփոթել դատարկ հաջող արդյունքը ոչ դատարկ հարցման ձևաչափման հետ։ Պետք է հաշվի առնել նաև, որ բացատներից կազմված արժեքը նույն դատարկ ճյուղում է հայտնվում, թեև տեսանելիորեն դաշտում նիշեր կան։
Ստուգման քայլերի հերթականությունը
-
Մուտքի համար պատրաստեք GraphQL հարցման, սխեմայի կամ դատարկ արժեքի տեքստ։ Եթե դատարկ փորձ եք կատարում, դաշտը թողեք ամբողջությամբ դատարկ կամ տեղադրեք միայն բացատներ։ Երկու տարբերակն էլ համարվում է դատարկ մուտք և պետք է գնահատվի նույն պայմաններով։
-
Եթե արժեքը փոխանցվում է ծրագրային կապով, հիմնական մուտքը տրամադրեք որպես տող։ Երբ այդ հիմնական արժեքը դատարկ է, կարող են հաշվի առնվել նաև
graphqlկամgql_inputանուններով փոխանցված արժեքները։ Այս այլընտրանքային անունները կիրառվում են միայն այն ժամանակ, երբ հիմնական արժեքը դատարկ է, ուստի դրանք մի դիտարկեք որպես անկախ ձևաչափման ռեժիմներ։ -
Դատարկ կամ միայն բացատային արժեքով ուղարկեք գործողությունը և դիտեք վերադարձված տեղեկությունները։ Այդ դեպքերում ձևաչափված տեքստը դատարկ է, մուտքի և ելքի չափերը զրո են, իսկ ընտրված ռեժիմի ու ներդրման արժեքները մնում են հենց տրամադրված տեսքով։ Դատարկ ճյուղում դրանք չեն փոքրատառացվում, չեն վերածվում ամբողջ թվի և չեն ենթարկվում միջակայքի կարգավորման։
-
Ոչ դատարկ հարցման կամ սխեմայի համար ընտրեք գեղեցկացում կամ սեղմում և փոխանցեք տեքստը։ Մի սպասեք, որ այս տարբերակը կվերադարձնի պատրաստի ձևաչափված բովանդակություն, քանի որ սովորական ոչ դատարկ տողի երկու մշակման ուղիներն էլ ավարտվում են արդյունքի վերադարձից առաջ։
-
Մեծ մուտքի դեպքում ստուգեք ոչ թե միայն նիշերի քանակը, այլ UTF-8 ներկայացման չափը։ Եթե ոչ դատարկ արժեքը գերազանցում է 1,000,000 բայթը, այն չի ձևաչափվում։ Ծրագրային փոխանցման ժամանակ առանձին ստուգեք նաև տողի տիպը, որովհետև ընտրվելուց հետո ոչ տողային արժեքը նույնպես ձախողվում է։
-
Ռեժիմի արժեքը մեկնաբանելիս հիշեք, որ միայն
minifyարժեքն է ընտրում սեղմման ուղին։ Մյուս արժեքները, այդ թվում չճանաչված տեքստերը, անցնում են գեղեցկացման ուղով։ Ներդրման համար ոչ վավեր, զրոյից փոքր կամ ութից մեծ արժեքը ոչ դատարկ մուտքի դեպքում փոխարինվում է երկու բացատով մեկ մակարդակի համար, իսկ հնարավոր փոխարկվող արժեքը նախ վերածվում է ամբողջ թվի։
Վերադարձված պատասխանի իմաստը
Դատարկ տեքստի վերադարձը տվյալ փորձի համար հաջող արդյունք է, բայց դրա իմաստը սահմանափակ է։ Այն հաստատում է միայն, որ դատարկ կամ բացատային մուտքի ճյուղը վերադարձրել է դատարկ բովանդակություն և զրոյական չափեր։ Այդպիսի պատասխանը չի հաստատում GraphQL հարցման շարահյուսական կամ իմաստային ճիշտ լինելը, քանի որ ստուգման համար բովանդակություն չի փոխանցվել։
Եթե մուտքի և ելքի չափերը երկուսն էլ զրո են, համեմատեք դրանք հենց դատարկ փորձի ակնկալիքի հետ։ Ռեժիմի կամ ներդրման վերադարձված արժեքը կարող է տարբերվել ոչ դատարկ մուտքի սովորական կարգավորումներից, քանի որ դատարկ ճյուղը շրջանցում է դրանց փոխակերպումն ու կարգավորումը։ Այդ պատճառով նույն արժեքները դատարկ և ոչ դատարկ փորձերում մի մեկնաբանեք որպես պարտադիր նույնական վարք։
Ոչ դատարկ հարցման դեպքում ձևաչափված տեքստի բացակայությունը այս տարբերակի սահմանափակումն է, ոչ թե հարցման վավերության վերաբերյալ պատասխան։ Նույն եզրակացությունը վերաբերում է ինչպես գեղեցկացման, այնպես էլ սեղմման ընտրությանը։ Սեղմման ուղու նկարագրության մեջ նշված են մեկնաբանության նմանվող, հաշվողական նշանով սկսվող հատվածների հեռացում, բացատների խտացում և որոշ նշանների շուրջ բացատների հեռացում, սակայն սովորական ոչ դատարկ մուտքի դեպքում այդ փոխակերպումները չեն հասնում վերադարձվող արդյունքին։
Չճանաչված ռեժիմի անունը մի համարեք երրորդ գործողության նշան։ Այն գնում է գեղեցկացման ուղով, բայց ոչ դատարկ սովորական տողի համար այդ ուղին նույնպես չի վերադարձնում հաջող ձևաչափված տեքստ։ Եթե փոխանցումը ձախողվում է, նախ տարբերակեք չափի և տիպի խնդիրները մշակման արդյունքի բացակայությունից։ Այդ հերթականությունը թույլ է տալիս ճիշտ բացատրել ստացված պատասխանը՝ առանց այն GraphQL-ի վերլուծման կամ կատարման արդյունք ներկայացնելու։
Գործնական օրինակ
Փորձարկողը ցանկանում է ստուգել դատարկ մուտքի վարքը և գործողությանը փոխանցում է միայն մեկ բացատ։
Մուտքի դաշտում թողեք մեկ բացատ, ընտրեք գեղեցկացումը և ուղարկեք գործողությունը։
Ստացվում է դատարկ ձևաչափված տեքստ, իսկ մուտքի և ելքի չափերը ցույց են տալիս զրո։ Ռեժիմի ու ներդրման արժեքները մնում են փոխանցված տեսքով։
Սահմանափակումներ
- Սովորական ոչ դատարկ մուտքի համար հաջող ձևաչափված արդյունք չի վերադարձվում։ Մեկ միլիոն UTF-8 բայթից մեծ արժեքը չի ձևաչափվում, իսկ սեղմման ուղու նկարագրված փոխակերպումները չեն հասնում վերադարձվող արդյունքին։
Հաճախակի սխալներ
- Սխալ սպասում. Ոչ դատարկ հարցման պատասխանի բացակայությունը վերագրել միայն ընտրված գործողությանը։ Ուղղում. Նախ ստուգեք, որ փոխանցված արժեքը տող է և UTF-8 ներկայացմամբ չի անցնում 1,000,000 բայթը, ապա հաշվի առեք, որ այս տարբերակում ոչ դատարկ տողի երկու ուղիներն էլ հաջող ձևաչափված արդյունք չեն վերադարձնում։
Հաճախ տրվող հարցեր
Ի՞նչ է վերադարձվում դատարկ GraphQL մուտքի դեպքում։
Դատարկ կամ միայն բացատներով կազմված արժեքը հաջողվում է, վերադարձնում է դատարկ տեքստ, իսկ մուտքի և ելքի չափերը զրո են։ Ռեժիմն ու ներդրումը վերադարձվում են տրամադրված ձևով՝ առանց դատարկ ճյուղում սովորական փոխակերպումների։
Հնարավո՞ր է ստանալ ոչ դատարկ GraphQL հարցման ձևաչափված արդյունքը։
Ոչ դատարկ հարցման կամ սխեմայի համար ձևաչափված տեքստ չի վերադարձվում, քանի որ գեղեցկացման և սեղմման ուղիները ավարտվում են մինչև հաջող պատասխանը։ Այս վարքը հարցման վավերության մասին եզրակացություն չի տալիս։
Ի՞նչ պետք է հաշվի առնել ծրագրային փոխանցման ժամանակ։
Եթե հիմնական արժեքը դատարկ է, կարող են օգտագործվել graphql կամ gql_input անուններով փոխանցված տողերը։ Ընտրվելուց հետո արժեքը պետք է տողային լինի, իսկ այլ տիպը ձախողվում է։