← speedor.net

Ծրագրավորողի գործիքներ

Անվճar առցանց գործիքներ՝ JSON ֆորմատավորիչ, Base64 և URL կոդավորում, JWT ապակոդավորիչ, regex թեստեր, HEX↔RGB, Unix ժամանակի դրոշմ և HTTP կոդեր։

Ծրագրավորման խնդիրների մեծ մասը մեծ ու հետաքրքիր են։ Իսկ նրանք, որոնք իրականում դանդաղեցնում են ձեզ, չեն։ Ձեր առջև մինիֆիկացված API պատասխան է, JWT, որը չեք կարողանում կարդալ, URL, որը փչացնում է իր query string-ը, և regex, որը գրեթե աշխատում է։ Այս ոչ մեկը արժանի չէ dependency-ի, CLI տեղադրման կամ գովազդներով լցված tab-ի։ Դրանք արժանի են երեսուն վայրկյանի և մաքուր տեքստային դաշտի։

Բրաուզերային գործիքատուփ մանր առաջադրանքների համար, որոնք ընդհատում են իրական աշխատանքը

Ծրագրավորման խնդիրների մեծ մասը մեծ ու հետաքրքիր են։ Իսկ նրանք, որոնք իրականում դանդաղեցնում են ձեզ, չեն։ Ձեր առջև մինիֆիկացված API պատասխան է, JWT, որը չեք կարողանում կարդալ, URL, որը փչացնում է իր query string-ը, և regex, որը գրեթե աշխատում է։ Այս ոչ մեկը արժանի չէ dependency-ի, CLI տեղադրման կամ գովազդներով լցված tab-ի։ Դրանք արժանի են երեսուն վայրկյանի և մաքուր տեքստային դաշտի։

Ահա ամբողջ գաղափարը այս հավաքածուի հետևում. մեկ էջ անվճար ծրագրավորողի ուտիլիտաներով, որոնք բեռնվում են ակնթարթորեն, ամբողջովին աշխատում են ձեր բրաուզերում, և երբեք չեն խնդրում գրանցվել։ JSON ֆորմատավորում, Base64, URL կոդավորում, JWT ապակոդավորում, գունային փոխարկում, regex թեստավորում, timestamp-ի հաշվարկներ և HTTP կարգավիճակի կոդերի տեղեկագիրք — բոլորը մեկ տեղում։ Դուք դադարում եք տեղադրել ձեր տվյալները Google-ի ցույց տված առաջին կայքում, և դադարում եք մտածել, թե արդյոք այդ պատահական կայքը գրանցում է դա։

Ինչ է իրականում անում յուրաքանչյուր գործիք

JSON ֆորմատավորիչը վերցնում է escape արված, մեկ տողի JSON-ի պատ և վերածում այն մի բանի, որը մարդը կարող է սկանավորել։ Ասենք webhook-ը գործարկվում է, և ձեր log-երը գրանցում են հում մարմինը որպես մեկ հսկայական string։ Տեղադրեք այն, ընտրեք երկու- կամ չորս-բացատանոց ինդենտացիա, և ստանում եք ընթեռնելի ծառ՝ սինտաքսի սխալի ճշգրիտ նշումով, եթե այն կա։ Այն վավերացնում է ֆորմատավորելիս, ուստի պատահական ավելորդ ստորակետը կամ չմեջբերված բանալին կանչվում է, այլ ոչ թե լուռ ձախողվում երեք շերտ ներքև ձեր հավելվածում։

Base64 կոդավորում/ապակոդավորումը այն ծանրաշարժ գործիքն է, որին դիմում եք մշտապես՝ առանց այդ մասին մտածելու։ Data URI-ներ, Basic Auth header-ներ, բինար blob-ներ, կծկված config ֆայլերի մեջ, token-ի հատվածները — բոլորը Base64։ Ապակոդավորեք header-ի արժեքը՝ հաստատելու, որ credential-ները ուղարկվում են ձեր ակնկալածով, կամ կոդավորեք փոքր պատկեր ինլայն ներառելու համար։ Այն մաքուր կերպով մշակում է UTF-8, ինչը կարևոր է հենց այն պահին, երբ ձեր մուտքագրումը հասարակ ASCII չէ։

URL կոդավորում/ապակոդավորում գործիքը ուղղում է դասական bug-ը, երբ query պարամետրը պարունակում է բացատ, ampersand կամ գումարման նշան և լուռ խափանում ձեր հարցումը։ Եթե ձեռքով կառուցում եք հղում, և արժեքը name=John & Co է, ձեզ անհրաժեշտ է այդ ampersand-ը escape անել %26-ի, հակառակ դեպքում սերվերը այն կարդում է որպես պարամետրերի բաժանարար։ Տեղադրեք, կոդավորեք, պատճենեք։ Ապակոդավորումն աշխատում է հակառակ ուղղությամբ, երբ նայում եք log-ված URL-ին, որը լցված է percent կոդերով, և փորձում եք հասկանալ, թե ինչ էր իրականում պահանջվել։

Աբստրակտ փայլող փակագծեր և ներդրված տվյալների կառուցվածքներ մուգ մուգ-կապույտ և ցիանագույն գույներով, ներկայացնելով ծրագրավորողի գործիքատուփ
Մեկ էջ, բազմաթիվ մանր առաջադրանքներ. ֆորմատավորել, ապակոդավորել, փոխարկել, թեստավորել։

Token գործիքը և կարևոր զգուշացում

JWT ապակոդավորիչը token-ը բաժանում է իր երեք կետով բաժանված մասերի և ցույց է տալիս ձեզ header-ը և payload-ը որպես հասարակ JSON։ Երբ auth-ը debug եք անում, սա ոսկի է. ստուգեք, թե որ ալգորիթմն է ստորագրել token-ը, կարդացեք sub-ը, հաստատեք, որ exp claim-ը դեռ չի անցել, և տեսեք, թե ինչ scope-եր կամ role-եր է ձեր gateway-ը հանձնում client-ին։

Ահա այն մասը, որը մարդիկ մոռանում են։ JWT-ի ապակոդավորումը դրա վավերացումը չէ։ Payload-ը պարզապես Base64url է — ցանկացած մեկը, ով ունի token-ը, կարող է կարդալ դրանում ամեն մի claim, և հենց դա է անում այս գործիքը, ոչ մի ավելին։ Այն չի ստուգում ստորագրությունը, ուստի ապակոդավորված token-ը ձեզ ասում է, թե ինչ ասում է token-ը, ոչ թե՝ արդյոք այն իսկական է։ Երբեք մի վստահեք ապակոդավորիչի claim-ներին թույլտվության որոշման համար. դա ձեր սերվերի աշխատանքն է, ստորագրման բանալիով։ Օգտագործեք ապակոդավորիչը հասկանալու և debug անելու համար, երբեք վավերացնելու համար։

Regex թեստավորիչը փակում է շրջանը ամենադժվար ուտիլիտայի հետ։ Գրեք ձեր օրինաչափությունը, տեղադրեք որոշ նմուշային տեքստ, և դիտեք, թե ինչպես են համընկնումները ընդգծվում ուղիղ, մինչ մուտքագրում եք։ Capture խմբերը թվարկվում են, ուստի կարող եք հաստատել, որ երկրորդ խումբը իսկապես բռնում է տարեթիվը, ոչ թե ամբողջ ամսաթիվը։ Այն ավելի լավն է, քան edit-save-rerun ցիկլը ձեր իրական կոդի բազայում օրինաչափություն թեստավորելիս, և արագ եղանակ է իմանալու, թե ինչու է greedy quantifier-ը կուլ տալիս ավելին, քան ցանկանում էիք։

Ամբողջացնելով. HEX↔RGB փոխարկիչը #1a2b3c-ը վերածում է rgb(26, 43, 60)-ի և հակառակը, երբ ձեր դիզայն token-ները և CSS-ը չեն համընկնում։ Unix timestamp փոխարկիչը 1718900000-ը վերածում է իրական ամսաթվի ու ժամի, ինչը ձեզ պետք կգա ամեն անգամ, երբ տվյալների բազան պահում է epoch վայրկյանները, և ձեր աչքերը չեն կարողանում դրանք վերլուծել։ Իսկ HTTP կարգավիճակի կոդերի տեղեկագիրքը ազատում է ձեզ գուշակելուց, թե 422-ը, թե 409-ն է ճիշտ պատասխանը, երբ API կանչը սխալ է գնում։

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

Լոկալ մշակում, որպեսզի կարողանաք տեղադրել զգայուն տվյալները

Սա ամենակարևոր մասն է ցանկացած մեկի համար, ով դիպչում է production տվյալներին։ Այստեղի յուրաքանչյուր գործիք աշխատում է client-side JavaScript-ով։ Ձեր մուտքագրումը երբեք չի հեռանում բրաուզերից — ոչ մի վերբեռնում, ոչ մի ուղևորություն դեպի սերվեր, ոչինչ գրանցելու։ Դա նշանակում է, որ դուք կարող եք տեղադրել իրական access token՝ դրա claim-երը ուսումնասիրելու համար, ապակոդավորել Base64 header, որը պարունակում է credential, կամ ֆորմատավորել հաճախորդի տվյալներով լցված API պատասխան առանց այն երբևէ ցանցով անցնելու։ Ապացույց եք ցանկանում։ Բացեք ձեր dev tools-ը, դիտեք network tab-ը, և տեղադրեք։ Դուք ոչինչ դուրս գնացող չեք տեսնի։ Զգայուն payload-ների համար լոկալ-միայն գործիքը ոչ թե պարզապես հաճելի հավելում է, այլ միակ պատասխանատու տարբերակը։

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

Այս ծրագրավորողի գործիքներն իսկապես անվճա՞ր են, առանց գրանցման:

Այո։ Յուրաքանչյուր ուտիլիտա անվճար է օգտագործման համար, հաշիվ չի պահանջում, և չունի օգտագործման սահմանափակումներ։ Բացեք էջը և սկսեք աշխատել։

Իմ տվյալներն ուղարկվու՞մ են սերվեր, երբ օգտագործում եմ այս գործիքները:

Ոչ։ Ամեն ինչ աշխատում է client-side ձեր բրաուզերում։ Ձեր մուտքագրումը երբեք չի վերբեռնվում, ուստի կարող եք ապահով տեղադրել token-ներ, credential-ներ և մասնավոր API պատասխաններ։

JWT ապակոդավորիչը վավերացնու՞մ է token-ի ստորագրությունը:

Ոչ։ Այն միայն ապակոդավորում է header-ը և payload-ը, որպեսզի կարողանաք կարդալ claim-երը։ Ապակոդավորումը վավերացում չէ։ Ստորագրության վավերացումն անհրաժեշտ է ստորագրման բանալի և պատկանում է ձեր սերվերին։

Ինչ տարբերություն կա Base64 կոդավորման և գաղտնագրման միջև:

Base64-ը կոդավորում է, ոչ թե գաղտնագրում։ Այն ամբողջովին հակադարձելի է ցանկացած մեկի կողմից և ոչ մի անվտանգություն չի առաջարկում։ Այն գոյություն ունի բինար տվյալները որպես տեքստ ներկայացնելու համար, ոչ թե դրանք թաքցնելու։

Ինչպիսի՞ regex տարբերակ է աջակցում regex թեստավորիչը:

Այն օգտագործում է JavaScript-ի regular expression շարժիչը, որն աշխատում է ձեր բրաուզերում՝ ուղիղ համընկնման ընդգծումով և capture խմբի արդյունքով, մինչ մուտքագրում եք։

Կարո՞ղ եմ ֆորմատավորել անվավեր JSON:

Ֆորմատավորիչը կփորձի, և եթե JSON-ը կոտրված է, այն ցույց է տալիս սխալի գտնվելու վայրը և ասում, թե ինչն է սխալ, որպեսզի կարողանաք ուղղել և կրկին ֆորմատավորել։