প্রশ্ন 1: API কী?
✅ উত্তর: API (Application Programming Interface) হলো একধরনের ইন্টারফেস
, যা দুটি সফটওয়্যার বা সিস্টেমের মধ্যে ডাটা আদান-প্রদান করতে
সাহায্য করে। এটি মূলত বিভিন্ন অ্যাপ্লিকেশন বা সার্ভিসকে সংযোগ স্থাপন করার জন্য ব্যবহৃত হয়।
প্রশ্ন 2: REST API কী?
✅ উত্তর: REST (Representational State Transfer) API হলো একটি আর্কিটেকচারাল স্টাইল
, যা ক্লায়েন্ট ও সার্ভারের মধ্যে ডাটা আদান-প্রদানের জন্য নির্দিষ্ট নিয়ম অনুসরণ করে। এটি HTTP প্রোটোকল ব্যবহার করে JSON বা XML ফরম্যাটে ডাটা আদান-প্রদান করে।
প্রশ্ন 3: REST API এবং SOAP API-এর মধ্যে পার্থক্য কী?
✅ উত্তর:
প্রশ্ন 4: API-এর প্রধান HTTP মেথড কী কী?
✅ উত্তর:
১. GET – ডাটা রিট্রিভ
করার জন্য।
২. POST – নতুন ডাটা যুক্ত
করার জন্য।
- PUT –
সম্পূর্ণ রিসোর্স আপডেট
করার জন্য। - PATCH –
আংশিক আপডেট
করার জন্য। - DELETE –
ডাটা মুছে ফেলার
জন্য।
🔹 Laravel API সম্পর্কিত প্রশ্ন ও উত্তর
প্রশ্ন 5: Laravel এ API তৈরি করার জন্য কী কী প্রয়োজন?
✅ উত্তর: Laravel-এ API তৈরি করতে নিচের ধাপগুলো অনুসরণ করা হয়:
1. Routes তৈরি করা:
routes/api.php ফাইলে রুট ডিফাইন করা হয়।
2. Controller তৈরি করা:
API-এর লজিক ব্যবস্থাপনার জন্য Controller ব্যবহার করা হয়।
3. Middleware ব্যবহার করা:
Authentication (JWT, Sanctum) এবং Authorization ব্যবহারের জন্য।
4. Resource & Response Formatting:
JSON রেসপন্সের জন্য Laravel API Resource ব্যবহার করা হয়।
প্রশ্ন 6: Laravel Sanctum কী এবং কেন ব্যবহৃত হয়?
✅ উত্তর: Laravel Sanctum হল একটি প্যাকেজ যা SPA (Single Page Application) বা মোবাইল অ্যাপ্লিকেশনের জন্য সহজ অথেনটিকেশন সিস্টেম প্রদান করে। এটি টোকেন ভিত্তিক অথেনটিকেশন
প্রদান করে এবং API-তে সিকিউরিটি বাড়ায়।
প্রশ্ন 7: API Rate Limiting কী এবং Laravel-এ এটি কীভাবে কাজ করে?
✅ উত্তর: API Rate Limiting হলো একটি নিরাপত্তামূলক ব্যবস্থা যা নির্দিষ্ট সময়ে কতবার API কল করা যাবে
তা নির্ধারণ করে। Laravel-এ এটি throttle middleware দিয়ে করা হয়।
উদাহরণ:
Route::middleware('throttle:60,1')->group(function () {
Route::get('/users', [UserController::class, 'index']);
});
এখানে প্রতি ১ মিনিটে সর্বোচ্চ ৬০ বার API কল করা যাবে।
প্রশ্ন 8: Laravel API Resource কী এবং এটি কীভাবে কাজ করে?
✅ উত্তর: Laravel API Resource হলো একটি ক্লাস যা ডাটা ফরম্যাট করে সুন্দরভাবে JSON রেসপন্স তৈরিতে সাহায্য করে।
উদাহরণ:
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class UserResource extends JsonResource
{
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
'email' => $this->email,
'created_at' => $this->created_at->format('Y-m-d'),
];
}
}
এটি ব্যবহার করতে:
return new UserResource($user);
অথবা
return UserResource::collection(User::all());
🔹 সিকিউরিটি সম্পর্কিত প্রশ্ন ও উত্তর
প্রশ্ন 9: JWT (JSON Web Token) কী এবং এটি কীভাবে কাজ করে?
✅ উত্তর: JWT হল একটি টোকেন-ভিত্তিক অথেনটিকেশন পদ্ধতি যেখানে একটি এনক্রিপ্টেড টোকেন তৈরি
হয় যা ব্যবহারকারীকে অথেনটিকেট করতে ব্যবহৃত হয়। এটি সাধারণত Header + Payload + Signature
আকারে গঠিত হয়।
প্রশ্ন 10: CORS (Cross-Origin Resource Sharing) কী?
✅ উত্তর: CORS হলো একটি ব্রাউজার সিকিউরিটি ফিচার যা এক ডোমেইনের API-তে অন্য ডোমেইন থেকে এক্সেস প্রতিরোধ বা অনুমোদন করে। Laravel-এ এটি cors.php
ফাইলের মাধ্যমে কনফিগার করা যায়।
প্রশ্ন 11: CSRF (Cross-Site Request Forgery) কী?
✅ উত্তর: CSRF হলো একটি আক্রমণ যেখানে একজন অ্যাটাকার ব্যবহারকারীর ব্রাউজারকে প্রতারিত করে অনিচ্ছাকৃত API কল করায়। Laravel-এ এটি প্রতিরোধের জন্য csrf_token()
ব্যবহার করা হয়।
🔹 ডিবাগিং ও টেস্টিং সম্পর্কিত প্রশ্ন ও উত্তর
প্রশ্ন 12: Laravel-এ API টেস্ট করার জন্য কোন টুল ব্যবহার করা হয়?
✅ উত্তর:
✅ Postman – API টেস্টিংয়ের জন্য সবচেয়ে জনপ্রিয় টুল।
✅ cURL – কমান্ড লাইন থেকে API টেস্ট করার জন্য।
✅ Laravel PHPUnit – ইউনিট টেস্টিং করার জন্য।
প্রশ্ন 13: Laravel API টেস্ট করার জন্য একটি PHPUnit টেস্ট কেসের উদাহরণ দিন।
✅ উত্তর:
public function testGetUserList()
{
$response = $this->getJson('/api/users');
$response->assertStatus(200)
->assertJsonStructure([
'*' => ['id', 'name', 'email', 'created_at']
]);
}
এটি নিশ্চিত করে যে /api/users
এ কল করলে JSON ফরম্যাট সঠিকভাবে রিটার্ন হয়।
🔹 API Status Code সম্পর্কিত প্রশ্ন ও উত্তর
প্রশ্ন 14: 1. HTTP Status Code কী?
✅ উত্তর: HTTP Status Code হলো তিন অঙ্কের সংখ্যা, যা ক্লায়েন্ট ও সার্ভারের মধ্যে কমিউনিকেশন স্ট্যাটাস
বোঝানোর জন্য ব্যবহৃত হয়। এগুলো API রেসপন্সের অংশ হিসেবে কাজ করে।
প্রশ্ন 15: 2. HTTP Status Code কয়টি ক্যাটাগরিতে বিভক্ত?
✅ উত্তর: HTTP Status Code মোট ৫টি ক্যাটাগরিতে বিভক্ত:
প্রশ্ন 16: 3. API রেসপন্সের জন্য সবচেয়ে বেশি ব্যবহৃত স্ট্যাটাস কোড কী কী?
✅ উত্তর:
✅ 200 OK → অনুরোধ সফলভাবে
প্রসেস হয়েছে।
✅ 201 Created → নতুন রিসোর্স তৈরি হয়েছে (POST API
)।
✅ 204 No Content → সফল, তবে কোন কন্টেন্ট নেই (DELETE API
)।
✅ 400 Bad Request → ক্লায়েন্টের অনুরোধ ভুল
ছিল।
✅ 401 Unauthorized → অথেনটিকেশন (লগইন
) প্রয়োজন।
✅ 403 Forbidden → অনুমতি নেই
, তবে অথেনটিকেশন আছে।
✅ 404 Not Found → নির্দিষ্ট রিসোর্স পাওয়া যায়নি।
✅ 405 Method Not Allowed → অনুরোধের HTTP মেথড অ্যালাউ নয়।
✅ 422 Unprocessable Entity → ডাটা ভ্যালিডেশন ফেল
করেছে।
✅ 500 Internal Server Error → সার্ভারের ভেতরের সমস্যা।
প্রশ্ন 17:. REST API এবং GraphQL-এর মধ্যে পার্থক্য কী?
✅ উত্তর:
প্রশ্ন 18:. API Versioning কী? Laravel-এ এটি কীভাবে করা যায়?
✅ উত্তর: API Versioning হলো একই API-এর বিভিন্ন সংস্করণ মেইনটেইন করা, যাতে পুরানো ক্লায়েন্টের সাথে সামঞ্জস্য রাখা যায়।
প্রশ্ন 19:. JWT (JSON Web Token) কীভাবে কাজ করে?
✅ উত্তর: JWT হলো Token-based Authentication System, যেখানে ইউজারকে অথেনটিকেট করার জন্য একটি এনক্রিপ্টেড টোকেন ইস্যু করা হয়।
✅ JWT টোকেনের ৩টি অংশ:
1️⃣ Header – {"alg": "HS256", "typ": "JWT"}
2️⃣ Payload (Data) – { "id": 1, "email": "user@example.com" }
3️⃣ Signature – HMACSHA256(header + payload, secret_key)
✅ JWT ব্যবহার:
use Tymon\JWTAuth\Facades\JWTAuth;
// টোকেন জেনারেট করা
$token = JWTAuth::fromUser($user);
// টোকেন থেকে ইউজার রিট্রিভ করা
$user = JWTAuth::parseToken()->authenticate();
প্রশ্ন 20:. OAuth 2.0 কী এবং এটি কীভাবে কাজ করে?
✅ উত্তর: OAuth 2.0 হলো Token-based Authorization Framework, যা থার্ড-পার্টি অ্যাপে সিকিউরভাবে এক্সেস প্রদান
করতে ব্যবহৃত হয়।
✅ OAuth 2.0-এর প্রধান ৪টি গ্রান্ট টাইপ:
✅ Laravel-এ OAuth 2.0 ব্যবহারের জন্য Laravel Passport ব্যবহার করা হয়।
use Laravel\Passport\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, Notifiable;
}
প্রশ্ন 21: Laravel API Response Caching কীভাবে করা যায়?
✅ উত্তর: Response Caching ব্যবহার করলে একই রিকুয়েস্ট বারবার প্রসেস না করে ক্যাশ থেকে দ্রুত রেসপন্স পাঠানো হয়, যা পারফরম্যান্স বাড়ায়।
✅ উদাহরণ:
use Illuminate\Support\Facades\Cache;
public function getUsers()
{
return Cache::remember('users', 60, function () {
return User::all();
});
}
👉 এখানে "users" ক্যাশে রাখা হবে এবং ৬০ সেকেন্ড পর নতুন ডাটা ফেচ করা হবে।
প্রশ্ন 22: Laravel API সিকিউর করার জন্য প্রধান কৌশল কী কী?
✅ উত্তর: Laravel API সুরক্ষিত করার জন্য নিচের পদ্ধতিগুলো ব্যবহার করা যেতে পারে:
1️⃣ Authentication & Authorization (JWT, Sanctum, Passport)
2️⃣ Rate Limiting (API abuse প্রতিরোধ)
3️⃣ CORS Policy (Cross-Origin Request নিয়ন্ত্রণ)
4️⃣ Data Encryption (Sensitive ডাটা এনক্রিপশন)
5️⃣ SQL Injection Prevention (Eloquent ORM ও Query Builder ব্যবহার করা)
6️⃣ Validation & Sanitization (Request Data ফিল্টার করা)
7️⃣ Logging & Monitoring (Unauthorized request ট্র্যাক করা)
প্রশ্ন 23:. Laravel-এ API Authentication করার জন্য কী কী পদ্ধতি রয়েছে?
✅ উত্তর:
1️⃣ Sanctum – লাইটওয়েট টোকেন-বেইজড অথেনটিকেশন।
2️⃣ Passport – OAuth2 বেইজড অথেনটিকেশন (সিকিউর কিন্তু বেশি কমপ্লেক্স)।
3️⃣ JWT (JSON Web Token) – স্ট্যান্ডার্ড অথেনটিকেশন পদ্ধতি যা অনেক API ব্যবহার করে।
প্রশ্ন 24:. Laravel Sanctum কীভাবে কাজ করে?
✅ উত্তর: Laravel Sanctum হল একটি Simple Token-Based Authentication System যা SPA (Vue, React, Angular) এবং মোবাইল অ্যাপ্লিকেশনের জন্য সহজ অথেনটিকেশন প্রদান করে।
প্রশ্ন 25:. Laravel API-এর পারফরম্যান্স বাড়ানোর জন্য প্রধান কৌশল কী কী?
✅ উত্তর:
1️⃣ Eager Loading ব্যবহার করুন (N+1 Problem সমাধান করতে)
2️⃣ Database Indexing করুন
3️⃣ Query Caching ব্যবহার করুন (Redis, Memcached)
4️⃣ Queue & Job ব্যবহার করুন (Heavy Task Offload করতে)
5️⃣ Pagination ব্যবহার করুন (বড় ডাটা লোড কমাতে)
6️⃣ Compression (Gzip, Brotli)
7️⃣ Lazy Collection ব্যবহার করুন
প্রশ্ন 26: Laravel API-তে HATEOAS কী?
✅ উত্তর: HATEOAS (Hypermedia as the Engine of Application State) হলো REST API-র একটি অ্যাডভান্সড কনসেপ্ট, যা API রেসপন্সের সাথে লিংক সংযুক্ত করে, যাতে ক্লায়েন্ট সহজে অন্য রিসোর্সে নেভিগেট করতে পারে।
🔹 উদাহরণ:
{
"id": 1,
"name": "John Doe",
"links": {
"self": "/api/users/1",
"posts": "/api/users/1/posts"
}
}
প্রশ্ন 27: Laravel API-তে WebSocket কীভাবে ব্যবহার করা যায়?
✅ উত্তর: WebSocket ব্যবহার করে Real-Time API তৈরি করা যায় (যেমন: চ্যাট অ্যাপ)। Laravel-এ Pusher বা Socket.IO ব্যবহার করা হয়।
🔹 Event তৈরি করা:
php artisan make:event MessageSent
🔹 Broadcasting:
broadcast(new MessageSent($message))->toOthers();