দ্রুত ডিবাগিংয়ের জন্য কীভাবে JSON ফর্ম্যাট করবেন

Minified API প্রতিক্রিয়াগুলি সরল দৃষ্টিতে ত্রুটিগুলি লুকিয়ে রাখে৷ আপনার মেশিনে পেলোড রাখে এমন ব্রাউজার সরঞ্জামগুলি ব্যবহার করে একটি পুনরাবৃত্তিযোগ্য ওয়ার্কফ্লো শিখুন—সুন্দর-প্রিন্ট, কাঠামো যাচাই করুন, JWTs ডিকোড করুন এবং রেজেক্স পরীক্ষা করুন৷

যখন একটি API মিনিফাইড JSON-এর একটি প্রাচীর ফেরত দেয়, তখন প্রকৃত বাগ খুঁজে পাওয়ার আগে ডিবাগিং ধীর হয়ে যায়। কীগুলি একসাথে অস্পষ্ট হয়, অনুপস্থিত কমাগুলি দীর্ঘ স্ট্রিংগুলিতে লুকিয়ে থাকে এবং নেস্টেড অ্যারেগুলি স্ক্যান করা অসম্ভব হয়ে পড়ে৷ প্রিটি-প্রিন্টিং প্রসাধনী নয়—এটি আপনি কীভাবে অস্বচ্ছ পরিবহন বিন্যাসকে এমন কিছুতে পরিণত করেন যা আপনার চোখ সেকেন্ডের মধ্যে বিশ্লেষণ করতে পারে।

আপনার ব্রাউজার নেটওয়ার্ক ট্যাব, টার্মিনাল বা লগ ফাইল থেকে কাঁচা প্রতিক্রিয়া কপি করুন। পাওয়ার টুলের JSON ফরম্যাটারে পেস্ট করুন। একটি ইন্ডেন্টেশন লেভেল বেছে নিন—কমপ্যাক্ট লগের জন্য দুটি স্পেস, কোড রিভিউতে স্নিপেট শেয়ার করার সময় চারটি স্পেস। ফর্ম্যাটারটি রেন্ডার হওয়ার সাথে সাথে সিনট্যাক্সকে যাচাই করে। যদি একটি অনুগামী কমা বা উদ্ধৃত কী নথিটি ভেঙে দেয়, তাহলে কোন লাইনটি ব্যর্থ হয়েছে তা অনুমান করার পরিবর্তে আপনি অবিলম্বে ত্রুটি অবস্থানটি দেখতে পাবেন।

যাচাইকরণ ত্রুটি কয়েকটি অনুমানযোগ্য বিভাগে পড়ে। একটি একক অনুপস্থিত উদ্ধৃতি প্রায়শই কয়েক ডজন বিভ্রান্তিকর বার্তায় পরিণত হয়; প্রথম রিপোর্ট করা সমস্যা এবং পুনরায় বিন্যাস ঠিক করুন। স্ট্রিং হিসাবে সংরক্ষিত সংখ্যাগুলি- "200" এর পরিবর্তে 200- বৈধ JSON কিন্তু আপনার অ্যাপ্লিকেশনে কঠোর তুলনা ভাঙতে পারে; ইন্ডেন্টেড আউটপুট পড়ার সময় সেগুলিকে হাইলাইট করুন। PATCH এন্ডপয়েন্টে নাল বনাম অনুপস্থিত কী গুরুত্বপূর্ণ: ফর্ম্যাট করা JSON এটিকে স্পষ্ট করে তোলে যখন একটি ক্ষেত্র অনুপস্থিত না হয়ে স্পষ্টভাবে শূন্য থাকে।

একবার পেলোড পড়াযোগ্য হয়ে গেলে, উপরে থেকে নীচে পড়ার পরিবর্তে কৌশলগতভাবে ডিবাগ করুন। খাম সনাক্ত করুন: HTTP মোড়কগুলি প্রায়শই ডেটা, ফলাফল বা আইটেমের নীচে ডেটা রাখে। আপনি যে আকৃতিটি আশা করছেন—অ্যারে বনাম অবজেক্ট—যা এসেছে তার সাথে তুলনা করুন। যদি পেজিনেশন জড়িত থাকে তবে পৃথক রেকর্ডে ডুব দেওয়ার আগে পৃষ্ঠা, মোট এবং কার্সার ক্ষেত্র নিশ্চিত করুন।

প্রমাণীকরণ বাগগুলি প্রায়শই JWT অ্যাক্সেস টোকেনকে জড়িত করে। যখন একটি এপিআই 401 বা 403 প্রদান করে, তখন বিয়ারার টোকেনটি পেস্ট করুন — "বিয়ারার" উপসর্গ ছাড়াই যদি ডিকোডার কাঁচা JWT আশা করে — JWT ডিকোডার টুলে। আগে এক্সপের দাবি পরিদর্শন করুন: মেয়াদ উত্তীর্ণ টোকেনগুলি হঠাৎ ব্যর্থতাগুলি ব্যাখ্যা করে যা "এলোমেলো" প্রদর্শিত হয় কারণ ঘড়িগুলি একটি সীমানা অতিক্রম করেছে৷ আপনার পরিষেবা ইস্যুকারী বা শ্রোতাদের যাচাই করে কিনা আইএস এবং অড চেক করুন। পেলোড বিভাগ ভূমিকা, ভাড়াটে আইডি এবং কাস্টম দাবিগুলি প্রকাশ করে যেগুলি পরিষেবাগুলির মধ্যে ভিন্ন হলে আপনার ব্যাকএন্ড ভুল পড়তে পারে৷

পাবলিক পেস্টবিনে প্রোডাকশন টোকেন পেস্ট করবেন না বা দৃশ্যমান দাবির সাথে চ্যাট স্ক্রিনশটগুলি পেস্ট করবেন না৷ আপনার নিজের মেশিনে ব্রাউজার-ভিত্তিক ডিকোডিং তৃতীয় পক্ষের সার্ভারগুলিকে গোপন রাখে, তবে আপনার স্ক্রিন এবং ক্লিপবোর্ড এখনও গুরুত্বপূর্ণ। ভাগ করা হার্ডওয়্যারে ডিবাগ করার পরে ক্ষেত্রটি সাফ করুন।

স্ট্রিং ফিল্ডে প্রায়ই এস্কেপড JSON বা base64 ব্লব থাকে। বাইরের বস্তুটি বিন্যাস করার পরে, একটি অভ্যন্তরীণ স্ট্রিং অনুলিপি করুন এবং আবার বিন্যাস করুন। কিছু এপিআই ডবল-এনকোড ত্রুটি: বার্তা ক্ষেত্র একটি বস্তুর পরিবর্তে একটি JSON স্ট্রিং ধারণ করে। প্রতিটি স্তর সুন্দর-মুদ্রণ করা আপনার UI ব্যবহারকারীদের দেখানো উচিত এমন আসল বৈধতা বার্তা প্রকাশ করে।

যখন লগগুলিতে মিশ্র পাঠ্য এবং JSON অন্তর্ভুক্ত থাকে - ওয়েবহুক বিতরণে সাধারণ - ফর্ম্যাট করার আগে JSON ব্লককে আলাদা করতে Regex পরীক্ষক ব্যবহার করুন৷ একটি প্যাটার্ন যেমন \{[\s\S]*\} সাবধানে অ্যাঙ্করিং সহ আশেপাশের শিরোনাম থেকে বস্তুটি বের করতে পারে। একটি সংরক্ষিত নমুনা লগের বিপরীতে রেজেক্স পরীক্ষা করুন, তারপর অনুরূপ এন্ট্রি জুড়ে এটি ধারাবাহিকভাবে প্রয়োগ করুন। ফর্ম্যাটারের সাথে regex নিষ্কাশন একত্রিত করুন যাতে আপনি ম্যানুয়ালি টাইমস্ট্যাম্প উপসর্গগুলি লাইন দ্বারা মুছে ফেলতে না পারেন৷

রিগ্রেশন কাজের জন্য, যখন আপনাকে কার্ল বা পোস্টম্যানে সঠিক বাইট সিকোয়েন্সগুলি পুনরুত্পাদন করতে হবে তখন ফর্ম্যাট করা JSON কে একটি একক লাইনে ছোট করুন। JSON ফর্ম্যাটার সেই রাউন্ড ট্রিপের জন্য মিনিফাই মোড সমর্থন করে। আপনার টিকিটে উভয় উপস্থাপনা সঞ্চয় করুন: মানব পাঠকদের জন্য ইন্ডেন্ট করা, কপি-পেস্ট পুনরুত্পাদন পদক্ষেপের জন্য ছোট করা।

API ঘটনাগুলির জন্য একটি ব্যক্তিগত চেকলিস্ট তৈরি করুন। প্রথম ধাপ: বিন্যাস এবং সিনট্যাক্স ঠিক করুন। ধাপ দুই: আপনার OpenAPI বা TypeScript প্রকারের বিরুদ্ধে মানচিত্র ক্ষেত্র। ধাপ তিন: প্রমাণ জড়িত থাকলে JWT ডিকোড করুন। ধাপ চার: প্রয়োজনে লগ থেকে এমবেডেড পেলোড regex-এক্সট্র্যাক্ট করুন। ধাপ 5: ক্ষুদ্রতম ব্যর্থ উপসেট নথিভুক্ত করুন - শুধুমাত্র সমস্যাযুক্ত কী অবশিষ্ট না থাকা পর্যন্ত সম্পর্কহীন শাখাগুলি সরান।
JSON অবজেক্ট টেকনিক্যালি ক্রমবিন্যস্ত হলেও ইন্ডেন্টেশন এবং কী অর্ডার কনভেনশনে সম্মত হতে দলগুলি উপকৃত হয়। টান অনুরোধে সামঞ্জস্যপূর্ণ বিন্যাস পার্থক্য গোলমাল হ্রাস করে। অন্য কারো পেলোড পর্যালোচনা করার সময়, তাদের স্ক্রিনশটগুলির পরিবর্তে ফর্ম্যাট করা JSON পেস্ট করতে বলুন; টেক্সট অনুসন্ধান করা যেতে পারে, ছবি পারে না.

বড় অ্যারে বিশেষ মনোযোগ প্রাপ্য। সূচক শূন্যে মানসিকভাবে ভেঙে পড়া সহজ; ইনডেক্সে বাগ চারশত নয়। ফর্ম্যাট করার পরে, আপনার বাগ রিপোর্ট থেকে নির্দিষ্ট আইডি বা ইমেল অনুসন্ধান করুন। যদি ফর্ম্যাটারটি অত্যন্ত বড় পেস্ট করা ইনপুটের সাথে লড়াই করে, তাহলে আপনার সম্পাদকের অ্যারেটি বিভক্ত করুন বা API মালিকের কাছ থেকে একটি পৃষ্ঠাযুক্ত শেষ পয়েন্টের অনুরোধ করুন৷

নিরাপত্তা-সংবেদনশীল ক্ষেত্রগুলি—পাসওয়ার্ড, রিফ্রেশ টোকেন, ব্যক্তিগত কী—কখনও কখনও দুর্ঘটনাজনিত ডিবাগ ডাম্পগুলিতে উপস্থিত হয়৷ টিকিটে ফর্ম্যাট করা আউটপুট ভাগ করার আগে সংশোধন করুন, এমনকি অভ্যন্তরীণভাবেও। ফরম্যাটার আপনার জন্য গোপন অপসারণ করে না।

কাঠামোর জন্য JSON ফরম্যাটার, টোকেন দাবির জন্য JWT ডিকোডার এবং JSON-কে অগোছালো লগ থেকে বের করে আনার জন্য Regex পরীক্ষকের সাথে, আপনি উন্মত্ত কপি-পেস্ট সেশনগুলিকে একটি ছোট, পুনরাবৃত্তিযোগ্য পাইপলাইনে পরিণত করেন। পরের বার যখন প্রোডাকশন একটি অস্বচ্ছ বডির সাথে 500 রিটার্ন করবে, আপনি হোয়াইটস্পেসে যুদ্ধ করার ঘন্টার পরিবর্তে আপত্তিকর ক্ষেত্রটি সনাক্ত করতে মিনিট ব্যয় করবেন।