PowerShell-এর Invoke-RestMethod কমান্ডলেটটি RESTful API-এর সাথে যোগাযোগ করার জন্য ব্যবহৃত হয়। এটি HTTP/HTTPS প্রোটোকল ব্যবহার করে API রিকোয়েস্ট পাঠাতে এবং রেসপন্স পেতে সহায়তা করে। PowerShell-এর মাধ্যমে আপনি GET, POST, PUT, DELETE ইত্যাদি HTTP মেথড ব্যবহার করে API রিকোয়েস্ট করতে পারেন এবং রেসপন্স হিসেবে JSON বা XML ফরম্যাটে ডেটা পেতে পারেন।
এই কমান্ডটি প্রধানত API-এর মাধ্যমে ডেটা সংগ্রহ, আপডেট বা ম্যানেজ করার জন্য ব্যবহার করা হয়। নিচে Invoke-RestMethod ব্যবহার করার বিভিন্ন পদ্ধতি এবং উদাহরণ দেওয়া হলো।
Invoke-RestMethod এর মৌলিক ব্যবহার
Invoke-RestMethod কমান্ডলেটের মাধ্যমে আপনি HTTP API রিকোয়েস্ট করতে পারেন। এই কমান্ডটি URL, HTTP মেথড, হেডার, বডি কন্টেন্ট ইত্যাদি সহ API কল পাঠানোর জন্য ব্যবহৃত হয়।
GET রিকোয়েস্ট পাঠানো
GET মেথড ব্যবহার করে আপনি API থেকে ডেটা রিট্রাইভ করতে পারেন।
# GET রিকোয়েস্টের উদাহরণ
$response = Invoke-RestMethod -Uri "https://jsonplaceholder.typicode.com/posts/1" -Method Get
# রেসপন্স দেখানো
$response
এখানে, jsonplaceholder.typicode.com API থেকে POST 1 রিট্রাইভ করা হয়েছে। আপনি যে API ব্যবহার করবেন তার উপর নির্ভর করে রেসপন্স একটি JSON অবজেক্ট হিসেবে পাওয়া যাবে।
POST রিকোয়েস্ট পাঠানো
POST মেথড ব্যবহারের মাধ্যমে আপনি API-তে ডেটা পাঠাতে পারেন।
# POST রিকোয়েস্টের উদাহরণ
$body = @{
title = "foo"
body = "bar"
userId = 1
}
$response = Invoke-RestMethod -Uri "https://jsonplaceholder.typicode.com/posts" -Method Post -Body ($body | ConvertTo-Json) -ContentType "application/json"
# রেসপন্স দেখানো
$response
এখানে POST রিকোয়েস্টে JSON ডেটা পাঠানো হয়েছে। ConvertTo-Json কমান্ড ব্যবহার করে ডেটাকে JSON ফরম্যাটে কনভার্ট করা হয়েছে।
PUT রিকোয়েস্ট পাঠানো
PUT মেথড ব্যবহারের মাধ্যমে আপনি একটি রিসোর্স আপডেট করতে পারেন।
# PUT রিকোয়েস্টের উদাহরণ
$body = @{
id = 1
title = "foo updated"
body = "bar updated"
userId = 1
}
$response = Invoke-RestMethod -Uri "https://jsonplaceholder.typicode.com/posts/1" -Method Put -Body ($body | ConvertTo-Json) -ContentType "application/json"
# রেসপন্স দেখানো
$response
এখানে, POST 1 রিসোর্স আপডেট করা হয়েছে।
DELETE রিকোয়েস্ট পাঠানো
DELETE মেথড ব্যবহার করে আপনি একটি রিসোর্স মুছে ফেলতে পারেন।
# DELETE রিকোয়েস্টের উদাহরণ
$response = Invoke-RestMethod -Uri "https://jsonplaceholder.typicode.com/posts/1" -Method Delete
# রেসপন্স দেখানো
$response
এটি POST 1 রিসোর্সটি DELETE করবে এবং রেসপন্সে কোনো কনটেন্ট না আসলে আপনি একটি খালি বা null রেসপন্স দেখতে পারেন।
Header এবং Authentication যুক্ত করা
API রিকোয়েস্ট করার সময় কখনও কখনও হেডার অথবা অথেন্টিকেশন প্রয়োজন হয়। PowerShell-এ হেডার এবং অথেন্টিকেশন ব্যবহার করার জন্য -Headers এবং -Credential প্যারামিটার ব্যবহার করা হয়।
Header সহ GET রিকোয়েস্ট:
# Header সহ GET রিকোয়েস্টের উদাহরণ
$headers = @{
"Authorization" = "Bearer YOUR_ACCESS_TOKEN"
}
$response = Invoke-RestMethod -Uri "https://api.example.com/data" -Method Get -Headers $headers
# রেসপন্স দেখানো
$response
এখানে, Authorization হেডারের মাধ্যমে Bearer টোকেন ব্যবহার করে অথেন্টিকেশন করা হয়েছে।
Basic Authentication:
# Basic Authentication সহ GET রিকোয়েস্ট
$Credential = Get-Credential
$response = Invoke-RestMethod -Uri "https://api.example.com/data" -Method Get -Credential $Credential
# রেসপন্স দেখানো
$response
এখানে, Get-Credential কমান্ডের মাধ্যমে ইউজারনেম ও পাসওয়ার্ড দিয়ে Basic Authentication করা হয়েছে।
API রেসপন্স ডেটার প্রক্রিয়াকরণ
PowerShell দিয়ে API থেকে পাওয়া JSON রেসপন্স সহজেই প্রক্রিয়াকরণ করা যায়। সাধারণত Invoke-RestMethod এর মাধ্যমে JSON রেসপন্স পাওয়ার পর এটি একটি PowerShell Object আকারে কনভার্ট হয়ে যায়, যা সহজেই ব্যবহৃত হতে পারে।
JSON রেসপন্স থেকে ডেটা এক্সট্রাক্ট করা:
# GET রিকোয়েস্ট
$response = Invoke-RestMethod -Uri "https://jsonplaceholder.typicode.com/posts/1" -Method Get
# JSON রেসপন্স থেকে Title বের করা
$title = $response.title
# Title দেখানো
$title
এখানে, JSON রেসপন্স থেকে title প্রপার্টি বের করা হয়েছে।
রেসপন্স থেকে বিশেষ তথ্য এক্সট্রাক্ট করা (Array থেকে):
# GET রিকোয়েস্ট
$response = Invoke-RestMethod -Uri "https://jsonplaceholder.typicode.com/posts" -Method Get
# সমস্ত পোস্টের শিরোনাম দেখানো
$response | ForEach-Object { $_.title }
এখানে, $response একটি অ্যারে হিসেবে রিটার্ন করবে, এবং আমরা ForEach-Object ব্যবহার করে প্রতিটি পোস্টের শিরোনাম (title) প্রদর্শন করেছি।
API Error Handling
API রিকোয়েস্টের সময় কখনও কখনও সমস্যা হতে পারে, যেমন নেটওয়ার্ক সমস্যা বা সার্ভার ত্রুটি। এই ধরনের পরিস্থিতি হ্যান্ডেল করার জন্য Try-Catch ব্লক ব্যবহার করা হয়।
# API কলের জন্য Error Handling
try {
$response = Invoke-RestMethod -Uri "https://jsonplaceholder.typicode.com/posts/1" -Method Get
$response
}
catch {
Write-Host "Error occurred: $_"
}
এখানে, যদি API রিকোয়েস্টের সময় কোনো ত্রুটি ঘটে, তবে Catch ব্লকটি ত্রুটি বার্তা প্রদর্শন করবে।
সারাংশ
Invoke-RestMethod কমান্ডলেটটি PowerShell-এ RESTful API-এর সাথে সহজে কাজ করার একটি শক্তিশালী উপায়। এটি বিভিন্ন HTTP মেথডের সাহায্যে API কল করতে, ডেটা পাঠাতে, এবং রেসপন্সের ডেটা প্রক্রিয়াকরণ করতে ব্যবহৃত হয়। এর মাধ্যমে আপনি সহজেই বিভিন্ন API রিকোয়েস্ট পরিচালনা করতে পারেন এবং JSON বা XML ডেটার সাথে কাজ করতে পারেন।
Read more