Curl to JavaScript Converter

curl কমান্ডগুলিকে JavaScript কোডে রূপান্তর করুন - API অনুরোধের জন্য ব্যবহার-প্রস্তুত JavaScript fetch/axios কোড তৈরি করুন

গোপনীয়তা বিজ্ঞপ্তি: এই পেশাদার টুল enterprise-grade গোপনীয়তা সুরক্ষা সহ JavaScript কোডে নিরাপদ রূপান্তর প্রদান করে। আমরা আপনার জমা দেওয়া কোনো ডেটা সংরক্ষণ করি না, যা আপনার API উন্নয়ন কাজের জন্য সম্পূর্ণ গোপনীয়তা নিশ্চিত করে।

JavaScript কোড জেনারেটর

// JavaScript code will appear here
// Example:
// Using fetch API
fetch('https://api.example.com/data', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    name: 'test'
  })
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));

JavaScript API পরীক্ষার জন্য সাধারণ curl কমান্ড

এখানে কিছু সাধারণ curl কমান্ড রয়েছে যা আপনি JavaScript কোডে রূপান্তর করতে পারেন:

JavaScript Fetch এবং Axios উদাহরণ

JavaScript HTTP অনুরোধ করার একাধিক উপায় প্রদান করে। এখানে Fetch API এবং Axios উভয় ব্যবহার করে সাধারণ প্যাটার্ন রয়েছে:

JavaScript Fetch দিয়ে ফাইল আপলোড

const formData = new FormData();
formData.append('file', document.querySelector('#fileInput').files[0]);

fetch('https://api.example.com/upload', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN_HERE'
  },
  body: formData
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));

টাইমআউট এবং এরর হ্যান্ডলিং সহ JavaScript Fetch

const controller = new AbortController();
const signal = controller.signal;

// Set timeout of 5 seconds
const timeoutId = setTimeout(() => controller.abort(), 5000);

fetch('https://api.example.com/data', {
  method: 'GET',
  signal: signal
})
.then(response => {
  if (!response.ok) {
    throw new Error(`HTTP error! Status: ${response.status}`);
  }
  clearTimeout(timeoutId);
  return response.json();
})
.then(data => console.log(data))
.catch(error => {
  if (error.name === 'AbortError') {
    console.error('Request timed out');
  } else {
    console.error('Error:', error);
  }
});

JavaScript কোড কনভার্টার ব্যবহার করার পদ্ধতি

১. মৌলিক ব্যবহার

আপনার curl কমান্ড কপি করুন → ইনপুট বক্সে পেস্ট করুন → তাৎক্ষণিকভাবে JavaScript কোড পান

২. উপযুক্ত এরর হ্যান্ডলিং বাস্তবায়ন করুন

axios.get('https://api.example.com/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    if (error.response) {
      // Server returned an error status code
      console.error(`Server error: ${error.response.status}`);
      console.error(error.response.data);
    } else if (error.request) {
      // Request was made but no response received
      console.error('Network error - no response received');
    } else {
      // Error in request setup
      console.error('Request error:', error.message);
    }
  });

৩. ভালো UX-এর জন্য অনুরোধ বাতিলকরণ ব্যবহার করুন

// Using fetch with AbortController
const controller = new AbortController();
const signal = controller.signal;

// Cancel request after 5 seconds
setTimeout(() => controller.abort(), 5000);

fetch('https://api.example.com/data', { signal })
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => {
    if (error.name === 'AbortError') {
      console.log('Request was cancelled');
    } else {
      console.error('Error:', error);
    }
  });

// Using axios with CancelToken
const source = axios.CancelToken.source();

// Cancel request after 5 seconds
setTimeout(() => {
  source.cancel('User cancelled the request');
}, 5000);

axios.get('https://api.example.com/data', {
  cancelToken: source.token
})
.then(response => console.log(response.data))
.catch(error => {
  if (axios.isCancel(error)) {
    console.log('Request cancelled:', error.message);
  } else {
    console.error('Error:', error);
  }
});

JavaScript HTTP অনুরোধ সম্পর্কে প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী

প্রশ্ন: JavaScript-এর fetch API কীভাবে curl থেকে আলাদা?

উত্তর: curl HTTP অনুরোধ করার জন্য একটি কমান্ড-লাইন টুল হলেও, JavaScript-এর fetch API ওয়েব ব্রাউজার এবং Node.js-এর মধ্যে একটি প্রোগ্রামাটিক ইন্টারফেস প্রদান করে। Fetch অ্যাসিঙ্ক্রোনাস অপারেশন পরিচালনার জন্য Promises ব্যবহার করে, যেখানে curl সিঙ্ক্রোনাসভাবে এক্সিকিউট হয়। এছাড়াও, fetch স্বয়ংক্রিয়ভাবে রিডাইরেক্ট অনুসরণ করে এবং ডিফল্টভাবে কুকি পাঠায় না, যেখানে curl অন্যথায় কনফিগার না করা হলে উভয়ই করে।

প্রশ্ন: fetch এবং axios-এর মধ্যে মূল পার্থক্য কী?

উত্তর: Fetch আধুনিক ব্রাউজারে অন্তর্নির্মিত কিন্তু এরর হ্যান্ডলিং-এর জন্য আরও বয়লারপ্লেট প্রয়োজন এবং স্বয়ংক্রিয়ভাবে JSON রেসপন্স পার্স করে না। Axios একটি লাইব্রেরি যা স্বয়ংক্রিয় JSON পার্সিং, ভালো এরর হ্যান্ডলিং, অনুরোধ/রেসপন্স ইন্টারসেপশন এবং অন্তর্নির্মিত অনুরোধ বাতিলকরণ সহ আরও বৈশিষ্ট্য-সমৃদ্ধ API প্রদান করে। Axios ব্রাউজার এবং Node.js পরিবেশে সামঞ্জস্যপূর্ণভাবে কাজ করে।

প্রশ্ন: JavaScript-এ curl কমান্ড রূপান্তর করার সময় CORS সমস্যাগুলি কীভাবে পরিচালনা করব?

উত্তর: CORS (ক্রস-অরিজিন রিসোর্স শেয়ারিং) সীমাবদ্ধতা ব্রাউজার-ভিত্তিক JavaScript-এ প্রযোজ্য কিন্তু curl-এ নয়। যখন আপনি curl কমান্ডগুলিকে JavaScript-এ রূপান্তর করেন, যদি সার্ভার উপযুক্ত CORS হেডার অন্তর্ভুক্ত না করে তবে আপনি CORS এরর দেখতে পারেন। সমাধানগুলির মধ্যে রয়েছে: একটি CORS প্রক্সি ব্যবহার করা, API মালিককে CORS হেডার সক্ষম করতে অনুরোধ করা, আপনার অ্যাপ্লিকেশনে একটি সার্ভার-সাইড প্রক্সি বাস্তবায়ন করা, বা ব্রাউজারে চলে না এমন অনুরোধের জন্য Node.js ব্যবহার করা।

প্রশ্ন: JavaScript-এ curl-এর -k/--insecure ফ্ল্যাগ কীভাবে সিমুলেট করব?

উত্তর: ব্রাউজার-ভিত্তিক JavaScript-এ, আপনি SSL সার্টিফিকেট যাচাইকরণ বাইপাস করতে পারবেন না কারণ এটি ব্রাউজার দ্বারা প্রয়োগ করা একটি নিরাপত্তা বৈশিষ্ট্য। Node.js-এ, আপনি HTTPS এজেন্ট কনফিগারেশনে rejectUnauthorized: false অপশন সেট করতে পারেন। তবে, এটি নিরাপত্তা বিপন্ন করে বলে প্রোডাকশনে দৃঢ়ভাবে নিরুৎসাহিত করা হয়। উদাহরণ: const https = require('https'); const agent = new https.Agent({rejectUnauthorized: false});

প্রশ্ন: JavaScript-এ curl-এর -F ফ্ল্যাগের মতো ফাইল আপলোড কীভাবে পরিচালনা করব?

উত্তর: JavaScript-এ curl-এর -F ফ্ল্যাগের মতো ফাইল আপলোড পরিচালনা করতে, FormData API ব্যবহার করুন। উদাহরণস্বরূপ: const formData = new FormData(); formData.append('file', fileInput.files[0]); formData.append('field', 'value'); fetch('https://api.example.com/upload', { method: 'POST', body: formData }); এই পদ্ধতি fetch এবং axios উভয়ের সাথেই কাজ করে।

প্রশ্ন: JavaScript-এ curl-এর --connect-timeout-এর মতো রিকোয়েস্ট টাইমআউট কীভাবে সেট করব?

উত্তর: fetch API-এর সাথে, AbortController-এর সাথে setTimeout ব্যবহার করুন: const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), 5000); fetch(url, { signal: controller.signal }); axios-এর সাথে, timeout অপশন ব্যবহার করুন: axios.get(url, { timeout: 5000 }); উভয় পদ্ধতিই আপনাকে একটি অনুরোধ বাতিল করার আগে কতক্ষণ অপেক্ষা করবেন তা নিয়ন্ত্রণ করতে দেয়।

প্রশ্ন: curl-এর ভার্বোস মোডের তুলনায় JavaScript-এ নেটওয়ার্ক অনুরোধ কীভাবে ডিবাগ করব?

উত্তর: curl বিস্তারিত অনুরোধ/প্রতিক্রিয়া তথ্যের জন্য -v/--verbose ফ্ল্যাগ অফার করলেও, JavaScript বিভিন্ন ডিবাগিং টুল প্রদান করে। ব্রাউজারে, অনুরোধ, হেডার, পেলোড এবং টাইমিং পরিদর্শন করতে DevTools-এর নেটওয়ার্ক ট্যাব ব্যবহার করুন। প্রোগ্রামাটিক ডিবাগিংয়ের জন্য, আপনি অনুরোধ/প্রতিক্রিয়া বিবরণ লগ করতে axios ইন্টারসেপ্টর ব্যবহার করতে পারেন বা fetch-এর সাথে কাস্টম লগিং বাস্তবায়ন করতে পারেন। Node.js-এ, আপনি 'http-debug'-এর মতো লাইব্রেরি ব্যবহার করতে পারেন বা NODE_DEBUG=http পরিবেশ ভেরিয়েবল সেট করতে পারেন।

JavaScript API পরীক্ষার জন্য Curl কমান্ড রেফারেন্স

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

মৌলিক curl সিনট্যাক্স

curl [options] [URL]

সাধারণ curl অপশন

জটিল curl কমান্ড রূপান্তর করা

আমাদের JavaScript কনভার্টার একাধিক হেডার, প্রমাণীকরণ, ডেটা পেলোড এবং বিভিন্ন অপশন সহ জটিল curl কমান্ডগুলি পরিচালনা করে। শুধু আপনার curl কমান্ড পেস্ট করুন এবং Fetch API বা Axios ব্যবহার করে পরিষ্কার, আধুনিক JavaScript কোড পান।

JavaScript HTTP সেরা অনুশীলন

JavaScript-এর Fetch API বা Axios নিয়ে কাজ করার সময়, দক্ষ এবং নিরাপদ API ইন্টারঅ্যাকশনের জন্য এই সেরা অনুশীলনগুলি অনুসরণ করুন:

১. ভালো পঠনযোগ্যতার জন্য async/await ব্যবহার করুন

// Using async/await with fetch
async function fetchData() {
  try {
    const response = await fetch('https://api.example.com/data');
    
    if (!response.ok) {
      throw new Error(`HTTP error! Status: ${response.status}`);
    }
    
    const data = await response.json();
    console.log(data);
    return data;
  } catch (error) {
    console.error('Fetch error:', error);
  }
}

// Using async/await with axios
async function fetchDataWithAxios() {
  try {
    const response = await axios.get('https://api.example.com/data');
    console.log(response.data);
    return response.data;
  } catch (error) {
    console.error('Axios error:', error);
  }
}

২. অনুরোধ পুনরায় চেষ্টা করার ব্যবস্থা বাস্তবায়ন করুন

async function fetchWithRetry(url, options = {}, retries = 3, backoff = 300) {
  try {
    const response = await fetch(url, options);
    return response;
  } catch (error) {
    if (retries <= 1) throw error;
    
    await new Promise(resolve => setTimeout(resolve, backoff));
    return fetchWithRetry(url, options, retries - 1, backoff * 2);
  }
}

৩. পুনরায় ব্যবহারযোগ্য API ক্লায়েন্ট তৈরি করুন

// Create configurable API client with axios
const apiClient = axios.create({
  baseURL: 'https://api.example.com',
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  }
});

// Add request interceptors
apiClient.interceptors.request.use(config => {
  // Do something before request is sent
  const token = localStorage.getItem('token');
  if (token) {
    config.headers.Authorization = `Bearer ${token}`;
  }
  return config;
}, error => {
  return Promise.reject(error);
});

// Add response interceptors
apiClient.interceptors.response.use(response => {
  // Any status code within 2xx range
  return response;
}, error => {
  // Handle 401 Unauthorized errors
  if (error.response && error.response.status === 401) {
    console.log('Unauthorized, please login again');
  }
  return Promise.reject(error);
});

// Use the API client
apiClient.get('/users')
  .then(response => console.log(response.data))
  .catch(error => console.error(error));

৪. একসাথে অনুরোধ পরিচালনা করুন

// Using Promise.all with fetch
async function fetchMultipleResources() {
  try {
    const [users, products, orders] = await Promise.all([
      fetch('https://api.example.com/users').then(res => res.json()),
      fetch('https://api.example.com/products').then(res => res.json()),
      fetch('https://api.example.com/orders').then(res => res.json())
    ]);
    
    console.log({ users, products, orders });
    return { users, products, orders };
  } catch (error) {
    console.error('Error fetching data:', error);
  }
}

// Using axios.all for concurrent requests
async function fetchMultipleResourcesWithAxios() {
  try {
    const [users, products, orders] = await axios.all([
      axios.get('https://api.example.com/users'),
      axios.get('https://api.example.com/products'),
      axios.get('https://api.example.com/orders')
    ]);
    
    console.log({
      users: users.data,
      products: products.data,
      orders: orders.data
    });
  } catch (error) {
    console.error('Error fetching data:', error);
  }
}

৫. অনুরোধ ক্যাশিং বাস্তবায়ন করুন

// Simple in-memory cache implementation
const cache = new Map();

async function fetchWithCache(url, options = {}, ttl = 60000) {
  const cacheKey = `${url}-${JSON.stringify(options)}`;
  
  // Check cache
  const cachedItem = cache.get(cacheKey);
  if (cachedItem && Date.now() < cachedItem.expiry) {
    console.log('Using cached data');
    return cachedItem.data;
  }
  
  // If no cache or expired, make the request
  const response = await fetch(url, options);
  const data = await response.json();
  
  // Update cache
  cache.set(cacheKey, {
    data,
    expiry: Date.now() + ttl
  });
  
  return data;
}
" } }, { "@type": "Question", "name": "ফাইল আপলোড সহ একটি curl কমান্ডকে JavaScript-এ কীভাবে রূপান্তর করব?", "acceptedAnswer": { "@type": "Answer", "text": "JavaScript-এ ফাইল আপলোডের জন্য, আপনাকে FormData API ব্যবহার করতে হবে। আমাদের কনভার্টার -F বা --form অপশন সহ curl কমান্ডগুলি পরিচালনা করে এবং fetch বা axios ব্যবহার করে উপযুক্ত JavaScript কোড তৈরি করে।" } } ] }