ধরুন, আপনি একটি নতুন Web API তৈরি করেছেন।
সব endpoint ঠিকমতো কাজ করছে।
আপনি Postman দিয়ে test করছেন।
কিন্তু হঠাৎ আপনার টিমের একজন Developer এসে বলল,
“API-এর documentation কোথায়?”
আপনি বললেন,
“Postman Collection আছে।”
সে আবার বলল,
“নতুন Developer join করলে কি Postman Collection দিয়েই সব বুঝতে হবে?”
এখানেই Swagger-এর প্রয়োজনীয়তা শুরু।
Swagger আসলে কী?
Swagger হলো এমন একটি tool যা আপনার Web API-এর documentation automatically তৈরি করে।
অর্থাৎ, আপনার API-তে কী কী endpoint আছে,
- কোন URL
- কোন HTTP Method (GET, POST, PUT, DELETE)
- কী parameter লাগবে
- কী response আসবে
সবকিছু সুন্দরভাবে একটি UI-তে দেখিয়ে দেয়।
তাহলে app.UseSwagger() কী করে?
app.UseSwagger();
এই লাইনটি Swagger-এর JSON documentation generate করে।
যেমন:
/swagger/v1/swagger.json
এই JSON file-এর মধ্যেই আপনার পুরো API-এর description থাকে।
অর্থাৎ এটি UI নয়।
এটি শুধুমাত্র API-এর metadata তৈরি করে।
তাহলে app.UseSwaggerUI() কী করে?
app.UseSwaggerUI();
এই লাইনটি সেই JSON file-কে একটি সুন্দর Web UI-তে দেখায়।
ফলে Browser থেকে আপনি দেখতে পারেন—
✅ সব Endpoint
✅ Request Body
✅ Parameters
✅ Response
✅ এমনকি Browser থেকেই API Call করতে পারেন।
বাস্তব উদাহরণ
ধরুন আপনি একটি Food Delivery API বানিয়েছেন।
Swagger UI খুললে দেখতে পারবেন—
GET /api/restaurants
GET /api/restaurants/{id}
POST /api/orders
PUT /api/orders/{id}
DELETE /api/orders/{id}
প্রতিটি endpoint-এ ক্লিক করে আপনি Request পাঠাতে পারবেন।
Postman খুলারও দরকার হবে না।
যদি শুধু UseSwagger() লিখেন?
তাহলে JSON তৈরি হবে।
কিন্তু Browser-এ সুন্দর UI পাবেন না।
যদি শুধু UseSwaggerUI() লিখেন?
Swagger UI দেখানোর জন্য JSON দরকার।
UseSwagger() না থাকলে UI কাজ করতে পারবে না।
অর্থাৎ—
দুইটি middleware একে অপরের উপর নির্ভরশীল।
Development Environment-এ কেন বেশি ব্যবহার করা হয়?
অনেক Project-এ আপনি এমন Code দেখবেন—
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
কারণ Production Environment-এ অনেক সময় API documentation public রাখা হয় না।
Security-এর কারণেও অনেক প্রতিষ্ঠান Production-এ Swagger disable করে রাখে।
আমার পরামর্শ
Swagger শুধু API দেখানোর জন্য নয়।
এটি Team Collaboration অনেক সহজ করে।
নতুন Developer onboarding, Frontend integration, QA testing—সব ক্ষেত্রেই Swagger অসাধারণ একটি tool।
আমার মতে, ASP.NET Core শিখতে গেলে Swagger বোঝা বাধ্যতামূলক।
কারণ এটি শুধু documentation নয়, এটি আপনার API-এর “Interactive User Manual”।

Leave a Reply