Ուղեցույց

Ինչպես ստուգել GraphQL Formatter-ի աշխատանքը GraphQL հարցման և դատարկ մուտքի դեպքում

Դատարկ կամ միայն բացատներից կազմված մուտքը վերադարձնում է դատարկ արդյունք, իսկ ոչ դատարկ GraphQL տեքստի ձևաչափված արդյունքը այս տարբերակում չի վերադարձվում։

Գործիք GraphQL ձևաչափիչ

Գործիքի վարքի ընդհանուր պատկերը

GraphQL Formatter-ը նախատեսված է GraphQL հարցման կամ սխեմայի տեքստ ընդունելու համար, սակայն վերանայված վարքը կարևոր տարբերություն ունի սովորական ձևաչափիչի սպասումներից։ Դատարկ կամ միայն բացատներից կազմված մուտքը հաջողությամբ ավարտվում է և վերադարձնում է դատարկ ձևաչափված տեքստ։ Ոչ դատարկ տեքստի դեպքում ոչ գեղեցկացումը, ոչ սեղմումը չեն հասնում հաջող ձևաչափված պատասխանի վերադարձին։

Այս պատճառով գործիքը կարելի է օգտագործել նախևառաջ մուտքի պայմաններն ու վերադարձվող արդյունքի ձևը հասկանալու համար։ Դատարկ փորձը ցույց է տալիս, թե ինչ է ստացվում առանց GraphQL բովանդակության, իսկ ոչ դատարկ փորձը սահմանում է այն իրավիճակը, որում պատրաստի ձևաչափված տեքստ չի վերադարձվում։ Այդ արդյունքներից չի կարելի եզրակացնել, որ հարցումը վերլուծվել, ստուգվել կամ կատարվել է։

Եթե նպատակն է ստուգել կոնկրետ մուտք, նախ առանձնացրեք երկու դեպք՝ դատարկ արժեք և բովանդակություն ունեցող արժեք։ Այս բաժանումը օգնում է չշփոթել դատարկ հաջող արդյունքը ոչ դատարկ հարցման ձևաչափման հետ։ Պետք է հաշվի առնել նաև, որ բացատներից կազմված արժեքը նույն դատարկ ճյուղում է հայտնվում, թեև տեսանելիորեն դաշտում նիշեր կան։

Ստուգման քայլերի հերթականությունը

  1. Մուտքի համար պատրաստեք GraphQL հարցման, սխեմայի կամ դատարկ արժեքի տեքստ։ Եթե դատարկ փորձ եք կատարում, դաշտը թողեք ամբողջությամբ դատարկ կամ տեղադրեք միայն բացատներ։ Երկու տարբերակն էլ համարվում է դատարկ մուտք և պետք է գնահատվի նույն պայմաններով։

  2. Եթե արժեքը փոխանցվում է ծրագրային կապով, հիմնական մուտքը տրամադրեք որպես տող։ Երբ այդ հիմնական արժեքը դատարկ է, կարող են հաշվի առնվել նաև graphql կամ gql_input անուններով փոխանցված արժեքները։ Այս այլընտրանքային անունները կիրառվում են միայն այն ժամանակ, երբ հիմնական արժեքը դատարկ է, ուստի դրանք մի դիտարկեք որպես անկախ ձևաչափման ռեժիմներ։

  3. Դատարկ կամ միայն բացատային արժեքով ուղարկեք գործողությունը և դիտեք վերադարձված տեղեկությունները։ Այդ դեպքերում ձևաչափված տեքստը դատարկ է, մուտքի և ելքի չափերը զրո են, իսկ ընտրված ռեժիմի ու ներդրման արժեքները մնում են հենց տրամադրված տեսքով։ Դատարկ ճյուղում դրանք չեն փոքրատառացվում, չեն վերածվում ամբողջ թվի և չեն ենթարկվում միջակայքի կարգավորման։

  4. Ոչ դատարկ հարցման կամ սխեմայի համար ընտրեք գեղեցկացում կամ սեղմում և փոխանցեք տեքստը։ Մի սպասեք, որ այս տարբերակը կվերադարձնի պատրաստի ձևաչափված բովանդակություն, քանի որ սովորական ոչ դատարկ տողի երկու մշակման ուղիներն էլ ավարտվում են արդյունքի վերադարձից առաջ։

  5. Մեծ մուտքի դեպքում ստուգեք ոչ թե միայն նիշերի քանակը, այլ UTF-8 ներկայացման չափը։ Եթե ոչ դատարկ արժեքը գերազանցում է 1,000,000 բայթը, այն չի ձևաչափվում։ Ծրագրային փոխանցման ժամանակ առանձին ստուգեք նաև տողի տիպը, որովհետև ընտրվելուց հետո ոչ տողային արժեքը նույնպես ձախողվում է։

  6. Ռեժիմի արժեքը մեկնաբանելիս հիշեք, որ միայն minify արժեքն է ընտրում սեղմման ուղին։ Մյուս արժեքները, այդ թվում չճանաչված տեքստերը, անցնում են գեղեցկացման ուղով։ Ներդրման համար ոչ վավեր, զրոյից փոքր կամ ութից մեծ արժեքը ոչ դատարկ մուտքի դեպքում փոխարինվում է երկու բացատով մեկ մակարդակի համար, իսկ հնարավոր փոխարկվող արժեքը նախ վերածվում է ամբողջ թվի։

Վերադարձված պատասխանի իմաստը

Դատարկ տեքստի վերադարձը տվյալ փորձի համար հաջող արդյունք է, բայց դրա իմաստը սահմանափակ է։ Այն հաստատում է միայն, որ դատարկ կամ բացատային մուտքի ճյուղը վերադարձրել է դատարկ բովանդակություն և զրոյական չափեր։ Այդպիսի պատասխանը չի հաստատում GraphQL հարցման շարահյուսական կամ իմաստային ճիշտ լինելը, քանի որ ստուգման համար բովանդակություն չի փոխանցվել։

Եթե մուտքի և ելքի չափերը երկուսն էլ զրո են, համեմատեք դրանք հենց դատարկ փորձի ակնկալիքի հետ։ Ռեժիմի կամ ներդրման վերադարձված արժեքը կարող է տարբերվել ոչ դատարկ մուտքի սովորական կարգավորումներից, քանի որ դատարկ ճյուղը շրջանցում է դրանց փոխակերպումն ու կարգավորումը։ Այդ պատճառով նույն արժեքները դատարկ և ոչ դատարկ փորձերում մի մեկնաբանեք որպես պարտադիր նույնական վարք։

Ոչ դատարկ հարցման դեպքում ձևաչափված տեքստի բացակայությունը այս տարբերակի սահմանափակումն է, ոչ թե հարցման վավերության վերաբերյալ պատասխան։ Նույն եզրակացությունը վերաբերում է ինչպես գեղեցկացման, այնպես էլ սեղմման ընտրությանը։ Սեղմման ուղու նկարագրության մեջ նշված են մեկնաբանության նմանվող, հաշվողական նշանով սկսվող հատվածների հեռացում, բացատների խտացում և որոշ նշանների շուրջ բացատների հեռացում, սակայն սովորական ոչ դատարկ մուտքի դեպքում այդ փոխակերպումները չեն հասնում վերադարձվող արդյունքին։

Չճանաչված ռեժիմի անունը մի համարեք երրորդ գործողության նշան։ Այն գնում է գեղեցկացման ուղով, բայց ոչ դատարկ սովորական տողի համար այդ ուղին նույնպես չի վերադարձնում հաջող ձևաչափված տեքստ։ Եթե փոխանցումը ձախողվում է, նախ տարբերակեք չափի և տիպի խնդիրները մշակման արդյունքի բացակայությունից։ Այդ հերթականությունը թույլ է տալիս ճիշտ բացատրել ստացված պատասխանը՝ առանց այն GraphQL-ի վերլուծման կամ կատարման արդյունք ներկայացնելու։

Գործնական օրինակ

Փորձարկողը ցանկանում է ստուգել դատարկ մուտքի վարքը և գործողությանը փոխանցում է միայն մեկ բացատ։

Մուտքի դաշտում թողեք մեկ բացատ, ընտրեք գեղեցկացումը և ուղարկեք գործողությունը։

Ստացվում է դատարկ ձևաչափված տեքստ, իսկ մուտքի և ելքի չափերը ցույց են տալիս զրո։ Ռեժիմի ու ներդրման արժեքները մնում են փոխանցված տեսքով։

Սահմանափակումներ

  • Սովորական ոչ դատարկ մուտքի համար հաջող ձևաչափված արդյունք չի վերադարձվում։ Մեկ միլիոն UTF-8 բայթից մեծ արժեքը չի ձևաչափվում, իսկ սեղմման ուղու նկարագրված փոխակերպումները չեն հասնում վերադարձվող արդյունքին։

Հաճախակի սխալներ

  • Սխալ սպասում. Ոչ դատարկ հարցման պատասխանի բացակայությունը վերագրել միայն ընտրված գործողությանը։ Ուղղում. Նախ ստուգեք, որ փոխանցված արժեքը տող է և UTF-8 ներկայացմամբ չի անցնում 1,000,000 բայթը, ապա հաշվի առեք, որ այս տարբերակում ոչ դատարկ տողի երկու ուղիներն էլ հաջող ձևաչափված արդյունք չեն վերադարձնում։

Հաճախ տրվող հարցեր

Ի՞նչ է վերադարձվում դատարկ GraphQL մուտքի դեպքում։

Դատարկ կամ միայն բացատներով կազմված արժեքը հաջողվում է, վերադարձնում է դատարկ տեքստ, իսկ մուտքի և ելքի չափերը զրո են։ Ռեժիմն ու ներդրումը վերադարձվում են տրամադրված ձևով՝ առանց դատարկ ճյուղում սովորական փոխակերպումների։

Հնարավո՞ր է ստանալ ոչ դատարկ GraphQL հարցման ձևաչափված արդյունքը։

Ոչ դատարկ հարցման կամ սխեմայի համար ձևաչափված տեքստ չի վերադարձվում, քանի որ գեղեցկացման և սեղմման ուղիները ավարտվում են մինչև հաջող պատասխանը։ Այս վարքը հարցման վավերության մասին եզրակացություն չի տալիս։

Ի՞նչ պետք է հաշվի առնել ծրագրային փոխանցման ժամանակ։

Եթե հիմնական արժեքը դատարկ է, կարող են օգտագործվել graphql կամ gql_input անուններով փոխանցված տողերը։ Ընտրվելուց հետո արժեքը պետք է տողային լինի, իսկ այլ տիպը ձախողվում է։

Գործիք

GraphQL ձևաչափիչ