تبدیل curl به TypeScript

curl2code دستورات curl را با استفاده از API بومی fetch به کد TypeScript همراه با تایپ‌های مناسب تبدیل می‌کند. این تبدیل در مرورگر شما از طریق WebAssembly انجام می‌شود — داده‌های شما هرگز دستگاهتان را ترک نمی‌کنند. برای JavaScript معمولی، مبدل curl به JavaScript ما را بررسی کنید. برای کد سمت سرور، curl به Node.js را ببینید. در ادامه مثال‌های تایپ‌گذاری شده برای سناریوهای رایج آورده شده است.

نحوه کپی کردن curl از مرورگر

  1. 1

    باز کردن DevTools

    کلید F12 یا Ctrl+Shift+I را فشار دهید تا ابزارهای توسعه‌دهنده مرورگر باز شوند.

  2. 2

    رفتن به تب Network

    روی تب Network کلیک کنید و عملیاتی که باعث ارسال درخواست HTTP می‌شود را انجام دهید.

  3. 3

    کپی به عنوان cURL

    روی درخواست راست‌کلیک کنید ← CopyCopy as cURL. سپس آن را در بالا جایگذاری کنید.

سوالات متداول

curl2code چه چیزی برای TypeScript تولید می‌کند؟

کتابخانه curl2code کد TypeScript را با استفاده از fetch API بومی مرورگر همراه با انوتیشن‌های کامل نوع (type annotations) تولید می‌کند. کد تولید شده شامل گزینه‌های درخواست تایپ‌شده، مدیریت صحیح Response و پارس کردن JSON با امنیت نوع است. TypeScript امنیت زمان کامپایل را به همان Fetch API مورد استفاده در JavaScript معمولی اضافه می‌کند.

TypeScript fetch در مقابل JavaScript fetch — تفاوت چیست؟

رابط API در زمان اجرا یکسان است — TypeScript بررسی نوع استاتیک را اضافه می‌کند. شما اشیاء تایپ‌شده Headers، RequestInit و Response را دریافت می‌کنید. برای ساختارهای پاسخ سفارشی، یک اینترفیس تعریف کنید و با await response.json() as MyType کست کنید. برای TypeScript سمت سرور، مبدل curl به Node.js ما را بررسی کنید.

چگونه احراز هویت را در TypeScript مدیریت کنیم؟

مشابه Fetch — یک هدر Authorization در شیء تایپ‌شده HeadersInit پاس دهید. TypeScript تضمین می‌کند که اگر از یک هلپر هدر تایپ‌شده استفاده می‌کنید، نام هدرها را اشتباه ننویسید. curl2code هدرهای احراز هویت با تایپ صحیح را از فلگ‌های -u و -H 'Authorization: ...' در curl تولید می‌کند.

چگونه داده‌های فرم را با TypeScript ارسال کنیم؟

از FormData API مرورگر استفاده کنید — TypeScript تعاریف نوع داخلی برای آن دارد. formData.append('file', file) را با پارامترهای تایپ‌شده فراخوانی کنید. کامپایلر ناهماهنگی نوع‌ها را در زمان ساخت (build) تشخیص می‌دهد. curl2code فلگ‌های -F را به فراخوانی‌های FormData با تایپ صحیح تبدیل می‌کند.

چگونه خطاها را به صورت ایمن از نظر نوع در TypeScript مدیریت کنیم؟

از try/catch با async/await استفاده کنید. خطای بند catch را به عنوان unknown تایپ کنید و با instanceof محدود کنید. قبل از پارس کردن، response.ok را چک کنید. پاسخ‌های خطای تایپ‌شده را با اینترفیس‌هایی برای فرمت‌های خطای خاص API تعریف کنید. این به شما تضمین‌های زمان کامپایل می‌دهد که تمام مسیرهای خطا مدیریت شده‌اند.

چگونه پاسخ‌های API را در TypeScript تایپ‌گذاری کنیم؟

یک اینترفیس برای ساختار پاسخ مورد انتظار تعریف کنید، سپس از const data: MyAPI = await response.json() استفاده کنید. برای اعتبارسنجی در زمان اجرا، آن را با zod یا io-ts ترکیب کنید. این الگو امنیت نوع را در سراسر کد شما تضمین می‌کند. برای تجربه تایپ‌شده مشابه در زبان‌های دیگر، curl به Go یا curl به Rust را ببینید.

چگونه برای fetch در TypeScript مهلت زمانی تنظیم کنیم؟

از AbortController استفاده کنید — TypeScript شامل تعاریف کامل نوع برای Abort API است. const controller = new AbortController() را ایجاد کنید، signal را به fetch پاس دهید و با setTimeout عملیات را لغو کنید. میان‌بر AbortSignal.timeout(ms) در تارگت‌های مدرن کتابخانه TypeScript تایپ‌گذاری شده است.

چگونه CORS را با TypeScript مدیریت کنیم؟

مدیریت CORS مشابه JavaScript است — این یک ویژگی امنیتی مرورگر است، نه TypeScript. mode: 'cors' و credentials: 'include' را در صورت نیاز تنظیم کنید، در حالی که TypeScript مقادیر صحیح انوم‌های RequestMode و RequestCredentials را تضمین می‌کند. برای درخواست‌های سمت سرور که CORS در آن‌ها اعمال نمی‌شود، curl به Node.js را ببینید.

چگونه یک درخواست POST با بدنه JSON در TypeScript ارسال کنیم؟

یک دستور curl POST مانند curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL را با استفاده از curl2code به TypeScript تبدیل کنید. کد تولید شده از const response: Response = await fetch(url, { method: 'POST', body: JSON.stringify(data) }) استفاده می‌کند. curl2code به طور خودکار فلگ‌های -d/--data با محتوای JSON را تشخیص داده و هدر Content-Type مناسب را در کد fetch تنظیم می‌کند.

چگونه احراز هویت با Bearer token را در TypeScript اضافه کنیم؟

دستور curl -H "Authorization: Bearer YOUR_TOKEN" URL را به curl2code بدهید تا کد fetch را با هدر احراز هویت تولید کند: headers: { Authorization: `Bearer ${token}` }. curl2code توکن‌های Bearer را از هر دو فلگ -H "Authorization: Bearer ..." و --oauth2-bearer تشخیص می‌دهد. برای Basic auth، از -u user:pass استفاده کنید.

چگونه هدر Content-Type را در TypeScript تنظیم کنیم؟

curl2code دستور curl -H "Content-Type: application/json" URL را به کد fetch با هدر مناسب تبدیل می‌کند: headers: { 'Content-Type': 'application/json' } as HeadersInit. برای داده‌های -d، دستور curl به طور پیش‌فرض از application/x-www-form-urlencoded استفاده می‌کند؛ برای آپلودهای فرم -F، از multipart/form-data استفاده می‌کند. curl2code هر کدام را به API صحیح fetch نگاشت می‌کند.

لینک‌های مفید

راهنماهای curl

تبدیل curl به زبان‌های دیگر