প্রকল্প সম্পর্কে
mitmproxy2swagger একটি কমান্ড-লাইন টুল যা HTTP ট্র্যাফিক ক্যাপচার (mitmproxy ফ্লো ফাইল বা ব্রাউজার DevTools HAR এক্সপোর্ট থেকে) OpenAPI 3.0 (Swagger) স্পেসিফিকেশনে রূপান্তর করে। এটি ডেভেলপারদের ম্যানুয়ালি এন্ডপয়েন্ট এবং প্যারামিটার পরীক্ষা না করে, শুধু একটি অ্যাপ্লিকেশন চালিয়ে তার নেটওয়ার্ক অনুরোধ লগ করার মাধ্যমে দ্রুত REST API রিভার্স-ইঞ্জিনিয়ার করতে সক্ষম করে।
## প্রধান বৈশিষ্ট্য
- **ইনপুট ফরম্যাট**: mitmproxy ফ্লো ফাইল (mitmweb/mitmproxy থেকে .mitm) এবং HAR ফাইল (স্বয়ংক্রিয়ভাবে সনাক্ত) গ্রহণ করে।
- **দুই-পাস ওয়ার্কফ্লো**: প্রথম পাসে আবিষ্কৃত সমস্ত পাথ সহ একটি টেমপ্লেট তৈরি করে; ব্যবহারকারীরা টেমপ্লেটটি সম্পাদনা করে কোন এন্ডপয়েন্ট অন্তর্ভুক্ত করবেন তা নির্বাচন করেন এবং পাথ প্যারামিটার সামঞ্জস্য করেন (যেমন, ডায়নামিক আইডি-কে {id} প্লেসহোল্ডার দিয়ে প্রতিস্থাপন)। দ্বিতীয় পাসে বিস্তারিত রিকোয়েস্ট/রেসপন্স স্কিমা পূরণ করে, একাধিক ক্যাপচার সেশনের ডেটা একত্রিত করে, বিদ্যমান কন্টেন্ট ওভাররাইট না করে।
- **সম্প্রসারণযোগ্য স্কিমা**: বিদ্যমান স্কিমা ফাইলে নতুন ডেটা মার্জ করতে পারে, যা ক্যাপচারের মাধ্যমে ক্রমবর্ধমান উন্নতি সম্ভব করে।
- **ঐচ্ছিক ডেটা সমৃদ্ধকরণ**: --examples এবং --headers ফ্ল্যাগগুলি নমুনা পেলোড এবং হেডার তথ্য অন্তর্ভুক্ত করে (সম্ভাব্য সংবেদনশীল ডেটার সতর্কতা সহ)।
- **আউটপুট ফরম্যাট**: OpenAPI 3.0-এর সাথে সামঞ্জস্যপূর্ণ YAML ফাইল তৈরি করে, যা Redoc-এর মতো ডকুমেন্টেশন টুলের সাথে ব্যবহারযোগ্য।
## সাধারণ ব্যবহার
1. HTTP ট্র্যাফিক ক্যাপচার করুন (যেমন, mitmweb ব্যবহার করে, তারপর ফ্লো ফাইল সংরক্ষণ করুন)।
2. প্রাথমিক টেমপ্লেট তৈরি করতে `mitmproxy2swagger -i flow.mitm -o schema.yaml -p https://api.example.com/v1` চালান।
3. schema.yaml সম্পাদনা করুন: কাঙ্ক্ষিত পাথ থেকে ignore: উপসর্গ সরান।
4. সম্পূর্ণ এন্ডপয়েন্ট সংজ্ঞা তৈরি করতে কমান্ডটি আবার চালান।
## প্রযুক্তিগত বিবরণ
- পাইথনে লেখা, pip দিয়ে ইনস্টলযোগ্য বা Docker দিয়ে চালানো যায়।
- PyPI এবং Arch Linux রিপোজিটরিতে উপলব্ধ।
- ডেভেলপমেন্টে uv, prek (লিন্টিং), এবং pytest (টেস্টিং) ব্যবহার হয়; অবদান স্বাগত।
- MIT লাইসেন্স।
## উদাহরণ ব্যবহার ক্ষেত্র
একটি অ্যাপ যেটি https://api.example.com/v1/login, /users/2, এবং /users/2/profile-এ অনুরোধ করে, সেক্ষেত্রে টুলটি https://api.example.com/v1-কে প্রিফিক্স হিসেবে প্রস্তাব করবে, তারপর ব্যবহারকারীকে /users/{id} এবং /users/{id}/profile এর মতো পাথ টেমপ্লেট সংজ্ঞায়িত করতে নির্দেশ দেবে।
ব্যবহারিক প্রদর্শনের জন্য, অন্তর্ভুক্ত example_outputs/ ডিরেক্টরি দেখুন যেখানে একটি জেনারেটেড স্কিমা এবং একটি রেন্ডারড HTML ডকুমেন্টেশন উদাহরণ রয়েছে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.