সফ্টওয়্যার সম্পর্কে আমি যা পছন্দ করি তার একটি বড় অংশ API বিকাশ। ডিকপল করা ওয়েব অ্যাপ্লিকেশনের জন্য ইন্টিগ্রেশন বা এপিআই তৈরি করা হোক না কেন, এটি সাধারণত শুধু আমি এবং কোড ।
বেশিরভাগ সময়, আমি একক API বিকাশকারী হিসাবে কাজ করি। একা যাওয়ার সুবিধা রয়েছে: দ্রুত সিদ্ধান্ত এবং সম্পূর্ণ নিয়ন্ত্রণ। তবে এটি একটি দ্বি-ধারী তলোয়ার যেহেতু আমার মাথায় সবকিছু রাখা হ্যান্ডঅফ এবং প্রতিনিধি দলকে জটিল করে তোলে। এবং একা যাওয়া প্রকল্পগুলির আকার এবং জটিলতাকে সীমাবদ্ধ করে যা আমি কাজ করতে পারি। সব পরে, আমি শুধু একজন মানুষ.
পোস্টম্যান হল API কাজের জন্য আমার প্রাথমিক হাতিয়ার — অনুরোধ পাঠানো, পরিবেশ পরিচালনা করা এবং পরীক্ষা চালানো। আমি আমার একক কর্মপ্রবাহের সাথে পরিচিত। কিন্তু আমি ভাবতে শুরু করেছি: একটি দলের পরিবেশে, পোস্টম্যান আর কী দিতে পারে? এটি কীভাবে সহযোগিতা বাড়াতে পারে এবং dev প্রক্রিয়াটিকে প্রবাহিত করতে পারে?
এই প্রশ্নগুলি অন্বেষণ করার জন্য, আমি একটি উদাহরণ API এ কাজ শুরু করি, যাকে আমি বলি "এক্স নিহিলো।"
X Nihilo আপনাকে 280-অক্ষরের টুইট তৈরি করতে সাহায্য করে যা আপনি সঞ্চয় করেন বা পাঠান তার উপর ভিত্তি করে। আপনি একটি বিষয়, একটি লক্ষ্য, গ্রহণের স্বরের একটি বিবরণ এবং দর্শকদের একটি বিবরণ প্রদান করেন। পর্দার আড়ালে, API পাঠ্য সমাপ্তির জন্য OpenAI এর API-কে একটি অনুরোধ পাঠাবে, যা টুইট তৈরি করতে সহায়তা করবে।
উপরন্তু, আপনি টোন এবং শ্রোতাদের জন্য যে স্ট্রিংগুলি ব্যবহার করেন তা সংরক্ষণ করতে পারেন এবং তারপরে পরবর্তী টুইট অনুরোধে সেগুলি পুনরায় ব্যবহার করতে পারেন।
চলুন আমার বেসিক এপিআই ডেভ ওয়ার্কফ্লো নিয়ে চলুন।
আমার ওয়ার্কফ্লোতে প্রথম ধাপ হল API ডিজাইন করা এবং একটি OpenAPI স্পেক লেখা। পোস্টম্যানে, আমি একটি নতুন API তৈরি করেছি এবং তারপরে আমি একটি নতুন API সংজ্ঞা শুরু করেছি।
কিছু চিন্তা করার পরে (এবং ChatGPT এর সাথে সরাসরি কাজ করা, যা আমার বর্ণনার উপর ভিত্তি করে একটি প্রাথমিক ওপেনএপিআই স্পেক তৈরি করার জন্য দুর্দান্ত ছিল), আমি আমার স্পেস লিখেছিলাম:
আমার OpenAPI স্পেক ঠিক রেখে, আমি রাস্তার কাঁটাচামচের কাছে চলে এসেছি। এই API এর সাথে ইন্টারঅ্যাক্ট করতে কেমন লাগবে তা দেখানোর জন্য আমার কি একটি মক সার্ভার এবং কিছু উদাহরণ অনুরোধ এবং প্রতিক্রিয়া সেট আপ করা উচিত? অথবা আমি বাস্তবায়ন কোড লেখা শুরু করা উচিত?
একজন একক বিকাশকারী হিসাবে, আমি যেকোন সময়ে শুধুমাত্র একজন API প্রযোজক বা একজন API গ্রাহক হতে পারি। তাই আমি সিদ্ধান্ত নিলাম: উপহাস তৈরি করার দরকার নেই — আমার মধ্যে থাকা ভোক্তাকে অপেক্ষা করতে হবে। আসুন কিছু কোড লিখি!
এক্সপ্রেসের সাথে Node.js ব্যবহার করে এবং একটি PostgreSQL ডাটাবেসের সাথে কথা বলে, আমি আমার মৌলিক API প্রয়োগ করেছি। এখানে আমার তৈরি করার জন্য প্রয়োজনীয় সমস্ত কিছুর একটি রাউনডাউন রয়েছে:
POST /signin
একটি username
এবং password
নেয়, ডাটাবেসের রেকর্ডের বিরুদ্ধে প্রমাণীকরণ করে এবং তারপর একটি স্বাক্ষরিত JWT প্রদান করে, যা পরবর্তী সমস্ত অনুরোধে ব্যবহার করা যেতে পারে।POST /generateTweet
একটি 280-অক্ষরের (সর্বোচ্চ) টুইট তৈরি করে। এটি একটি topic
(স্ট্রিং) এবং একটি goal
(স্ট্রিং) লাগে। এটি হয় একটি tone
(স্ট্রিং) বা একটি toneId
(একটি সঞ্চিত টোনের পূর্ণসংখ্যা আইডি), সাথে একটি audience
(স্ট্রিং) বা একটি audienceId
(একটি সঞ্চিত দর্শকের পূর্ণসংখ্যা আইডি) লাগে। যখনই tone
এবং/অথবা audience
স্ট্রিং প্রদান করা হয়, এবং API ডাটাবেসে সেভ করবে।GET /tones
টোন আইডি এবং সংশ্লিষ্ট স্ট্রিংগুলির একটি তালিকা প্রদান করে। পুনরায় ব্যবহারযোগ্য শ্রোতা স্ট্রিং-এর জন্য GET /audiences
একই কাজ করে।DELETE /tones
একটি টোন আইডি নেয় এবং সেই টোন রেকর্ড মুছে দেয়। DELETE /audiences
শ্রোতা রেকর্ডের জন্য একই কাজ করে।
প্রাথমিক বাস্তবায়ন সম্পন্ন হওয়ার পরে, কিছু অনুরোধ চালানো শুরু করার জন্য পোস্টম্যানের কাছে ফিরে যাওয়ার সময় হয়েছে।
প্রথমে, আমি "পরীক্ষা" নামে একটি নতুন পরিবেশ তৈরি করেছি। আমি একটি বৈধ username
এবং password
সহ আমার root_url
সংরক্ষণ করতে ভেরিয়েবল যোগ করেছি।
তারপর, আমি একটি নতুন সংগ্রহ তৈরি করেছি এবং আমার প্রথম অনুরোধ যুক্ত করেছি: প্রমাণীকরণ চেষ্টা করার জন্য /signin
এ একটি POST
অনুরোধ।
আমার API সার্ভার একটি টার্মিনাল উইন্ডোতে চলমান থাকায়, আমি আমার প্রথম অনুরোধ পাঠিয়েছি।
সফলতার ! আমি আমার টোকেন পেয়েছি, যা ভবিষ্যতের অনুরোধে আমার প্রয়োজন হবে।
আমি একটি নতুন অনুরোধ তৈরি করেছি, এবার একটি টুইট তৈরি করার জন্য।
আমি "বেয়ারার টোকেন" ব্যবহার করার জন্য অনুমোদন সেট করা নিশ্চিত করেছি এবং আমি আগের অনুরোধ থেকে এইমাত্র যে টোকেন পেয়েছি তা প্রদান করেছি।
এখানে প্রতিক্রিয়া:
এটা কাজ করে!
এটি আমার একক কর্মপ্রবাহের মধ্যে একটি মৌলিক লুকোচুরি। অবশ্যই, আমি পথ ধরে আরও কয়েকটি জিনিস করব:
/signin
অনুরোধ সম্পাদন করার জন্য একটি প্রাক-অনুরোধ স্ক্রিপ্ট লিখুন এবং তারপর প্রতিক্রিয়াতে টোকেনের উপর ভিত্তি করে একটি পরিবেশ পরিবর্তনশীল সেট করুন।
যদি আমি একা কাজ করি, এই মৌলিক কর্মপ্রবাহটি আমাকে ফিনিশ লাইনের বেশ কাছাকাছি নিয়ে যায়। যদিও এটি ঠিক আছে, আমি জানি যে আমি সম্ভবত পোস্টম্যানের উপলব্ধ বৈশিষ্ট্যগুলির পৃষ্ঠটি স্ক্র্যাচ করছি। এবং আমি জানি যে পোস্টম্যানের কাছ থেকে আমার আরও অনেক কিছু প্রয়োজন হবে যদি আমি একটি দলে কাজ করতাম।
যদি আমি X Nihilo-এর জন্য একক API বিকাশকারী না হতে পারি? এটি বিভিন্ন কারণে ঘটতে পারে:
ক্লায়েন্টদের জন্য আমার সমস্ত API প্রকল্পগুলি ছোট হবে না যা আমি নিজেই তৈরি করতে পারি। মাঝে মাঝে, আমাকে এমন একটি দলের অংশ হতে হবে যা একটি API তৈরি করে। আমি এমনকি API দলের নেতৃত্ব দিতে হতে পারে.
যখন এটি ঘটবে, তখন আমাকে আমার একক মানসিকতা ছেড়ে যেতে হবে এবং পোস্টম্যানে কাজ করার একক উপায় ছেড়ে দিতে হবে। এটি আমাকে পোস্টম্যানের দল-সম্পর্কিত বৈশিষ্ট্যগুলি দেখতে অনুপ্রাণিত করেছিল।
পোস্টম্যানের একটি বিনামূল্যের স্তর রয়েছে এবং এটি কিছু সীমিত সহযোগিতার বৈশিষ্ট্যগুলি অফার করে, যা যথেষ্ট হতে পারে যদি আপনি একটি ছোট দল হন (অর্থাৎ তিনজনের বেশি বিকাশকারী নয়)৷ পোস্টম্যানের এন্টারপ্রাইজ এসেনশিয়াল স্তরের অংশ হিসাবে অতিরিক্ত বৈশিষ্ট্য রয়েছে। এগুলি বৃহত্তর সংস্থাগুলির API টিমের জন্য দুর্দান্ত যেগুলি বোর্ড জুড়ে পোস্টম্যান ব্যবহার করে৷
একটি ওয়ার্কস্পেস আপনার দলকে একাধিক API প্রকল্পে সহযোগিতা করতে দেয়। এটি দুর্দান্ত যদি আপনার বিভিন্ন দল বিভিন্ন API-এ কাজ করে তবে সেই APIগুলি একে অপরের সাথে ইন্টারঅ্যাক্ট করে (যা সাধারণত বড় সফ্টওয়্যার সংস্থাগুলির ক্ষেত্রে হয়)।
রিয়েল-টাইম সহযোগিতা সক্ষম করার জন্য ওয়ার্কস্পেসগুলি দুর্দান্ত। দলের সদস্যরা API ডকুমেন্টেশন সম্পাদনা করতে পারে, ক্রাফটিং অনুরোধ বা পরীক্ষা লেখার জন্য একসাথে কাজ করতে পারে এবং একটি মক সার্ভার তৈরি করতে পারে যা পুরো দল ব্যবহার করতে পারে। সম্পাদনা করা হয়, তারা রিয়েল টাইমে সমগ্র দলের সাথে সিঙ্ক করা হয়.
যখন আমি আমার কোডের জন্য সংস্করণ নিয়ন্ত্রণের বিষয়ে যত্ন নিতাম, একজন একক API বিকাশকারী হিসাবে, আমি আমার পোস্টম্যান সংগ্রহ বা পরিবেশের সংস্করণ নিয়ন্ত্রণ সম্পর্কে খুব বেশি যত্ন করিনি। যদি আমি কিছু পরিবর্তন করি (একটি অনুরোধ সংশোধন করুন, একটি পরীক্ষা আপডেট করুন, একটি পরিবেশ পরিবর্তনশীল সরান), আমি শুধুমাত্র একজন প্রভাবিত। কোন ব্যাপারই না.
আপনি যখন একটি দলে কাজ করেন, তখন আপনি অবশ্যই জানতে চান যখন পরিস্থিতি পরিবর্তন হয়। এবং কখনও কখনও আপনাকে পরিবর্তনগুলি ফিরিয়ে আনতে হবে। সৌভাগ্যবশত, পোস্টম্যান এন্টারপ্রাইজ ব্যবহারকারী দলগুলির জন্য, পোস্টম্যান আপনাকে সংগ্রহ, ওয়ার্কস্পেস এবং APIগুলির জন্য একটি চেঞ্জলগ অ্যাক্সেস দেয়। আপনি সময়ের সাথে আগের পয়েন্টগুলিতে সংগ্রহগুলি ফিরিয়ে আনতে পারেন। একটি দলের একজন API বিকাশকারী হিসাবে, আপনার এটির প্রয়োজন হবে৷ বেশিরভাগ সময়, বব সংগ্রহটি নষ্ট করার কারণে। কখনও কখনও, যদিও, আপনি বব.
পোস্টম্যান কর্মক্ষেত্রে প্রত্যেকেরই একই স্তরের অনুমতি থাকা উচিত নয়। কিছু দলের সদস্য পরীক্ষক, এবং তাদের শুধুমাত্র অনুরোধ পাঠানোর এবং পরীক্ষা চালানোর ক্ষমতা দরকার — কিন্তু তাদের পরিবর্তন করবেন না। অন্যরা এমন ডিজাইনার হতে পারে যারা শুধুমাত্র API সংজ্ঞা পরিবর্তন করতে পারবেন।
পোস্টম্যানে, আপনি দলের সদস্যদের ভূমিকা অর্পণ করতে পারেন। এটি প্রতিটি দলের সদস্যদের একটি দল বা কর্মক্ষেত্রের মধ্যে যে ধরণের অ্যাক্সেস এবং অনুমতির স্তরকে প্রভাবিত করে।
দলগুলির ব্যক্তিগত কর্মক্ষেত্রও থাকতে পারে, দলের বাইরে অন্যদের অ্যাক্সেস সীমাবদ্ধ করে।
আমি আরও লক্ষ্য করেছি যে পোস্টম্যান এন্টারপ্রাইজ "ডোমেন ক্যাপচার" সমর্থন করে। এর মূলত মানে হল আপনি (উদাহরণস্বরূপ) mycompany.biz
ডোমেন থেকে প্রত্যেককে অ্যাক্সেস দিয়ে আপনার প্রতিষ্ঠানের সমস্ত ব্যবহারকারীদের সেট আপ করতে পারেন।
পোস্টম্যানের একটি সহযোগিতা বৈশিষ্ট্য রয়েছে, যা কেবলমাত্র এর এন্টারপ্রাইজ এসেনশিয়াল নয়, তার সমস্ত পরিকল্পনায় উপলব্ধ। এটি দলের সদস্যদের সংগ্রহে মন্তব্য যোগ করার ক্ষমতা (ফোল্ডার, অনুরোধ, উদাহরণ, বা পুল অনুরোধে)। পোস্টম্যানে সরাসরি মন্তব্য এবং আলোচনা করতে সক্ষম হওয়া টিম API বিকাশের জন্য বিশাল। যেহেতু আপনার দলের বেশিরভাগ API ডেভ কাজ পোস্টম্যানে ঘটবে, তাই সেখানে আপনার আলোচনা করা বোধগম্য হয় (গিটহাব বা অন্য কোনো বাহ্যিক পরিষেবার পরিবর্তে)।
যখনই আমি একটি দলে যোগদান করি, আমি সেই সরঞ্জামগুলি নিয়ে আসি যা আমি ব্যবহার করতে পছন্দ করি, কিন্তু আমি সত্যিই সেগুলি আমার সতীর্থদের উপর চাপিয়ে দিই না। আমি মনে করি তারা তাদের নিজস্ব সরঞ্জাম আছে. সুতরাং, প্রতিটি তাদের নিজস্ব. কিন্তু আমার একটা অনুভূতি আছে যে বেশিরভাগ API ডেভেলপারদের তাদের টুলবেল্টে পোস্টম্যান থাকে। এটি শুধুমাত্র একটি লজ্জাজনক হবে যদি একটি টিমের বেশ কয়েকটি API বিকাশকারীরা সবাই পোস্টম্যানকে পৃথকভাবে, একক মানসিকতার সাথে এবং এই দলের বৈশিষ্ট্যগুলির কিছু সুবিধা না নিয়ে ব্যবহার করে। যদি তারা পোস্টম্যান এন্টারপ্রাইজ বৈশিষ্ট্যগুলির সুবিধা নেয় তবে তারা পাবে...
একটি ভাগ করা কর্মক্ষেত্রে, আপনি ভাগ করা API সংজ্ঞা দিয়ে শুরু করতে পারেন। যখনই কোনও দলের সদস্য সংজ্ঞা (বা ডকুমেন্টেশন বা পরীক্ষা বা পরিবেশ) সম্পাদনা করে, সম্পাদনাগুলি সিঙ্ক হয়ে যায় এবং প্রত্যেকের কাছেই সর্বশেষ এবং সর্বশ্রেষ্ঠ থাকে৷
প্রত্যেকে একটি সংগ্রহে অনুরোধের একই সেট কাজ করে, এবং প্রত্যেকেরই ব্যবহার করা হবে এমন সমস্ত পরীক্ষায় অ্যাক্সেস রয়েছে। এই সমস্ত সুবিধাগুলি একটি দলের দক্ষতা উন্নত করবে, যা তাদের বিকাশের গতিকে আকাশচুম্বী করবে।
যখন প্রত্যেকে সত্যের একই উৎস (আপনার কর্মক্ষেত্র) থেকে কাজ করে, এবং তারা যে টুলটি উন্নয়নের জন্য ব্যবহার করছে তার মধ্যে তারা মন্তব্য করতে এবং কথোপকথন করতে পারে, এটি কম ভুল বোঝাবুঝির দিকে পরিচালিত করবে। আপনার টিম সেই শেষপয়েন্টটি ক্যোয়ারী প্যারাম বা পাথ প্যারাম নেওয়ার কথা ছিল কিনা তা নিয়ে বিভ্রান্তিতে সময় হারাবে না। সবকিছু পরিষ্কার হয়ে যাবে।
আমি জানতাম না যে পোস্টম্যান দল এবং উদ্যোগের জন্য ছিল। এখন যেহেতু আমি জানি, এখানে আমার বড় টেকঅওয়ে: দলের খেলোয়াড়রা এমন টুল ব্যবহার করে যা দলের জন্য ভালো।
পোস্টম্যান আমার জন্য দুর্দান্ত ছিল যখন আমি একক API বিকাশকারী। সৌভাগ্যবশত, এটিতে এমন বৈশিষ্ট্যও রয়েছে যা আমার জন্য এটিকে দুর্দান্ত করে তুলবে যখন আমি একটি API ডেভ টিমে থাকি। আমার জন্য, এটি সংগ্রহ, চেঞ্জলগ এবং সংস্করণ নিয়ন্ত্রণের মধ্যে সম্পাদনাগুলির রিয়েল-টাইম সিঙ্ক এবং অ্যাক্সেসের জন্য দানাদার অনুমতি। এখন, আমি বড় দলগুলির সাথে বৃহত্তর API প্রকল্পগুলি গ্রহণ করতে উত্তেজিত।
শুভ কোডিং!
এছাড়াও এখানে প্রকাশিত.