paint-brush
একা যাওয়া থেকে মুক্ত হওয়া: পোস্টম্যানের সাথে API ডেভেলপমেন্টে সহযোগিতা করতে শেখাদ্বারা@alvinslee
1,241 পড়া
1,241 পড়া

একা যাওয়া থেকে মুক্ত হওয়া: পোস্টম্যানের সাথে API ডেভেলপমেন্টে সহযোগিতা করতে শেখা

দ্বারা Alvin Lee8m2023/11/21
Read on Terminal Reader
Read this story w/o Javascript

অতিদীর্ঘ; পড়তে

আমি আমার একক API ডেভ কাজে পোস্টম্যান ব্যবহার করতে অভ্যস্ত। কিন্তু যদি আমার একটি এপিআই ডেভ টিমে কাজ করার প্রয়োজন হয়, তাহলে আমাকে এপিআই কাজের টিম সহযোগিতার জন্য পোস্টম্যান টেবিলে কী নিয়ে আসে তা অন্বেষণ করতে হবে। দেখা যাচ্ছে... এটা দলগুলোর জন্য বেশ ভালো হাতিয়ার।
featured image - একা যাওয়া থেকে মুক্ত হওয়া: পোস্টম্যানের সাথে API ডেভেলপমেন্টে সহযোগিতা করতে শেখা
Alvin Lee HackerNoon profile picture
0-item

সফ্টওয়্যার সম্পর্কে আমি যা পছন্দ করি তার একটি বড় অংশ API বিকাশ। ডিকপল করা ওয়েব অ্যাপ্লিকেশনের জন্য ইন্টিগ্রেশন বা এপিআই তৈরি করা হোক না কেন, এটি সাধারণত শুধু আমি এবং কোড


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


পোস্টম্যান হল API কাজের জন্য আমার প্রাথমিক হাতিয়ার — অনুরোধ পাঠানো, পরিবেশ পরিচালনা করা এবং পরীক্ষা চালানো। আমি আমার একক কর্মপ্রবাহের সাথে পরিচিত। কিন্তু আমি ভাবতে শুরু করেছি: একটি দলের পরিবেশে, পোস্টম্যান আর কী দিতে পারে? এটি কীভাবে সহযোগিতা বাড়াতে পারে এবং dev প্রক্রিয়াটিকে প্রবাহিত করতে পারে?


এই প্রশ্নগুলি অন্বেষণ করার জন্য, আমি একটি উদাহরণ API এ কাজ শুরু করি, যাকে আমি বলি "এক্স নিহিলো।"

উদাহরণ 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 বিকাশকারী না হতে পারি? এটি বিভিন্ন কারণে ঘটতে পারে:


  • X নিহিলো আকার এবং জটিলতায় বৃদ্ধি পায় এবং এটিকে সমর্থন করার জন্য একটি একক API বিকাশকারী আর যথেষ্ট নয়।
  • এক্স নিহিলো একটি বৃহত্তর API প্রকল্পের একটি ছোট অংশ যাতে একাধিক API বিকাশকারী বা এমনকি একাধিক API টিমও জড়িত।


ক্লায়েন্টদের জন্য আমার সমস্ত API প্রকল্পগুলি ছোট হবে না যা আমি নিজেই তৈরি করতে পারি। মাঝে মাঝে, আমাকে এমন একটি দলের অংশ হতে হবে যা একটি API তৈরি করে। আমি এমনকি API দলের নেতৃত্ব দিতে হতে পারে.

যখন এটি ঘটবে, তখন আমাকে আমার একক মানসিকতা ছেড়ে যেতে হবে এবং পোস্টম্যানে কাজ করার একক উপায় ছেড়ে দিতে হবে। এটি আমাকে পোস্টম্যানের দল-সম্পর্কিত বৈশিষ্ট্যগুলি দেখতে অনুপ্রাণিত করেছিল।

পোস্টম্যানের দল (এন্টারপ্রাইজ) বৈশিষ্ট্যগুলি অন্বেষণ করা

পোস্টম্যানের একটি বিনামূল্যের স্তর রয়েছে এবং এটি কিছু সীমিত সহযোগিতার বৈশিষ্ট্যগুলি অফার করে, যা যথেষ্ট হতে পারে যদি আপনি একটি ছোট দল হন (অর্থাৎ তিনজনের বেশি বিকাশকারী নয়)৷ পোস্টম্যানের এন্টারপ্রাইজ এসেনশিয়াল স্তরের অংশ হিসাবে অতিরিক্ত বৈশিষ্ট্য রয়েছে। এগুলি বৃহত্তর সংস্থাগুলির API টিমের জন্য দুর্দান্ত যেগুলি বোর্ড জুড়ে পোস্টম্যান ব্যবহার করে৷

ওয়ার্কস্পেস শেয়ারিং

একটি ওয়ার্কস্পেস আপনার দলকে একাধিক API প্রকল্পে সহযোগিতা করতে দেয়। এটি দুর্দান্ত যদি আপনার বিভিন্ন দল বিভিন্ন API-এ কাজ করে তবে সেই APIগুলি একে অপরের সাথে ইন্টারঅ্যাক্ট করে (যা সাধারণত বড় সফ্টওয়্যার সংস্থাগুলির ক্ষেত্রে হয়)।


রিয়েল-টাইম সহযোগিতা সক্ষম করার জন্য ওয়ার্কস্পেসগুলি দুর্দান্ত। দলের সদস্যরা API ডকুমেন্টেশন সম্পাদনা করতে পারে, ক্রাফটিং অনুরোধ বা পরীক্ষা লেখার জন্য একসাথে কাজ করতে পারে এবং একটি মক সার্ভার তৈরি করতে পারে যা পুরো দল ব্যবহার করতে পারে। সম্পাদনা করা হয়, তারা রিয়েল টাইমে সমগ্র দলের সাথে সিঙ্ক করা হয়.

ভর্সন নিয্ন্ত্র্ন

যখন আমি আমার কোডের জন্য সংস্করণ নিয়ন্ত্রণের বিষয়ে যত্ন নিতাম, একজন একক API বিকাশকারী হিসাবে, আমি আমার পোস্টম্যান সংগ্রহ বা পরিবেশের সংস্করণ নিয়ন্ত্রণ সম্পর্কে খুব বেশি যত্ন করিনি। যদি আমি কিছু পরিবর্তন করি (একটি অনুরোধ সংশোধন করুন, একটি পরীক্ষা আপডেট করুন, একটি পরিবেশ পরিবর্তনশীল সরান), আমি শুধুমাত্র একজন প্রভাবিত। কোন ব্যাপারই না.


আপনি যখন একটি দলে কাজ করেন, তখন আপনি অবশ্যই জানতে চান যখন পরিস্থিতি পরিবর্তন হয়। এবং কখনও কখনও আপনাকে পরিবর্তনগুলি ফিরিয়ে আনতে হবে। সৌভাগ্যবশত, পোস্টম্যান এন্টারপ্রাইজ ব্যবহারকারী দলগুলির জন্য, পোস্টম্যান আপনাকে সংগ্রহ, ওয়ার্কস্পেস এবং APIগুলির জন্য একটি চেঞ্জলগ অ্যাক্সেস দেয়। আপনি সময়ের সাথে আগের পয়েন্টগুলিতে সংগ্রহগুলি ফিরিয়ে আনতে পারেন। একটি দলের একজন API বিকাশকারী হিসাবে, আপনার এটির প্রয়োজন হবে৷ বেশিরভাগ সময়, বব সংগ্রহটি নষ্ট করার কারণে। কখনও কখনও, যদিও, আপনি বব.

ভূমিকা-ভিত্তিক অ্যাক্সেস এবং ব্যবহারকারী সংস্থা

পোস্টম্যান কর্মক্ষেত্রে প্রত্যেকেরই একই স্তরের অনুমতি থাকা উচিত নয়। কিছু দলের সদস্য পরীক্ষক, এবং তাদের শুধুমাত্র অনুরোধ পাঠানোর এবং পরীক্ষা চালানোর ক্ষমতা দরকার — কিন্তু তাদের পরিবর্তন করবেন না। অন্যরা এমন ডিজাইনার হতে পারে যারা শুধুমাত্র API সংজ্ঞা পরিবর্তন করতে পারবেন।


পোস্টম্যানে, আপনি দলের সদস্যদের ভূমিকা অর্পণ করতে পারেন। এটি প্রতিটি দলের সদস্যদের একটি দল বা কর্মক্ষেত্রের মধ্যে যে ধরণের অ্যাক্সেস এবং অনুমতির স্তরকে প্রভাবিত করে।


দলগুলির ব্যক্তিগত কর্মক্ষেত্রও থাকতে পারে, দলের বাইরে অন্যদের অ্যাক্সেস সীমাবদ্ধ করে।

আমি আরও লক্ষ্য করেছি যে পোস্টম্যান এন্টারপ্রাইজ "ডোমেন ক্যাপচার" সমর্থন করে। এর মূলত মানে হল আপনি (উদাহরণস্বরূপ) mycompany.biz ডোমেন থেকে প্রত্যেককে অ্যাক্সেস দিয়ে আপনার প্রতিষ্ঠানের সমস্ত ব্যবহারকারীদের সেট আপ করতে পারেন।

ইনলাইন মন্তব্য এবং আলোচনা

পোস্টম্যানের একটি সহযোগিতা বৈশিষ্ট্য রয়েছে, যা কেবলমাত্র এর এন্টারপ্রাইজ এসেনশিয়াল নয়, তার সমস্ত পরিকল্পনায় উপলব্ধ। এটি দলের সদস্যদের সংগ্রহে মন্তব্য যোগ করার ক্ষমতা (ফোল্ডার, অনুরোধ, উদাহরণ, বা পুল অনুরোধে)। পোস্টম্যানে সরাসরি মন্তব্য এবং আলোচনা করতে সক্ষম হওয়া টিম API বিকাশের জন্য বিশাল। যেহেতু আপনার দলের বেশিরভাগ API ডেভ কাজ পোস্টম্যানে ঘটবে, তাই সেখানে আপনার আলোচনা করা বোধগম্য হয় (গিটহাব বা অন্য কোনো বাহ্যিক পরিষেবার পরিবর্তে)।

টিম এপিআই ডেভেলপমেন্ট: জয়ের জন্য পোস্টম্যান

যখনই আমি একটি দলে যোগদান করি, আমি সেই সরঞ্জামগুলি নিয়ে আসি যা আমি ব্যবহার করতে পছন্দ করি, কিন্তু আমি সত্যিই সেগুলি আমার সতীর্থদের উপর চাপিয়ে দিই না। আমি মনে করি তারা তাদের নিজস্ব সরঞ্জাম আছে. সুতরাং, প্রতিটি তাদের নিজস্ব. কিন্তু আমার একটা অনুভূতি আছে যে বেশিরভাগ API ডেভেলপারদের তাদের টুলবেল্টে পোস্টম্যান থাকে। এটি শুধুমাত্র একটি লজ্জাজনক হবে যদি একটি টিমের বেশ কয়েকটি API বিকাশকারীরা সবাই পোস্টম্যানকে পৃথকভাবে, একক মানসিকতার সাথে এবং এই দলের বৈশিষ্ট্যগুলির কিছু সুবিধা না নিয়ে ব্যবহার করে। যদি তারা পোস্টম্যান এন্টারপ্রাইজ বৈশিষ্ট্যগুলির সুবিধা নেয় তবে তারা পাবে...

কর্মদক্ষতা বৃদ্ধি

একটি ভাগ করা কর্মক্ষেত্রে, আপনি ভাগ করা API সংজ্ঞা দিয়ে শুরু করতে পারেন। যখনই কোনও দলের সদস্য সংজ্ঞা (বা ডকুমেন্টেশন বা পরীক্ষা বা পরিবেশ) সম্পাদনা করে, সম্পাদনাগুলি সিঙ্ক হয়ে যায় এবং প্রত্যেকের কাছেই সর্বশেষ এবং সর্বশ্রেষ্ঠ থাকে৷


প্রত্যেকে একটি সংগ্রহে অনুরোধের একই সেট কাজ করে, এবং প্রত্যেকেরই ব্যবহার করা হবে এমন সমস্ত পরীক্ষায় অ্যাক্সেস রয়েছে। এই সমস্ত সুবিধাগুলি একটি দলের দক্ষতা উন্নত করবে, যা তাদের বিকাশের গতিকে আকাশচুম্বী করবে।

কম ভুল বোঝাবুঝি

যখন প্রত্যেকে সত্যের একই উৎস (আপনার কর্মক্ষেত্র) থেকে কাজ করে, এবং তারা যে টুলটি উন্নয়নের জন্য ব্যবহার করছে তার মধ্যে তারা মন্তব্য করতে এবং কথোপকথন করতে পারে, এটি কম ভুল বোঝাবুঝির দিকে পরিচালিত করবে। আপনার টিম সেই শেষপয়েন্টটি ক্যোয়ারী প্যারাম বা পাথ প্যারাম নেওয়ার কথা ছিল কিনা তা নিয়ে বিভ্রান্তিতে সময় হারাবে না। সবকিছু পরিষ্কার হয়ে যাবে।

মূল গ্রহণ

আমি জানতাম না যে পোস্টম্যান দল এবং উদ্যোগের জন্য ছিল। এখন যেহেতু আমি জানি, এখানে আমার বড় টেকঅওয়ে: দলের খেলোয়াড়রা এমন টুল ব্যবহার করে যা দলের জন্য ভালো।


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


শুভ কোডিং!


এছাড়াও এখানে প্রকাশিত.