روز 0
اثبات دسترسی
کلید را ایجاد کنید، یک درخواست احراز هویت شده را کامل کنید و اولین پاسخ را به همراه متادیتای آن ذخیره کنید.
باز کردن مرحله ←راهنمای جریان کاری API
نتیجهای را انتخاب کنید که به شغل شما نزدیکتر است. هر مسیر به شما یک درخواست کاری، آنچه پاسخ باید شامل شود، نحوه بررسی عملکرد آن و مرحله مفید بعدی را میدهد.
پنج مسیر کاربردی
Selected: Harden a client
دوره آزمایشی API به مدت 14 روز شما
هدف بازدید از هر صفحه محصول نیست. هدف تکمیل کارهای احراز شده مفید API، بازگشت در روزی دیگر و خروج با یک مجموعه داده یا جریان کاری برنامه تکرارپذیر است.
روز 0
کلید را ایجاد کنید، یک درخواست احراز هویت شده را کامل کنید و اولین پاسخ را به همراه متادیتای آن ذخیره کنید.
باز کردن مرحله ←روزهای 1-2
حل مشکلات احراز هویت یا فیلتر و تبدیل اولین اسکریپت به یک شغل تکرارپذیر نامگذاری شده.
باز کردن مرحله ←روزهای 3-4
از تقویم به عنوان خانواده دوم نقاط انتهایی (endpoint) استفاده کنید و زمان اجرای مفید بعدی API را برنامهریزی کنید.
باز کردن مرحله ←روزهای 5-7
انتظارات یا گروه کوچکی از سریهای کلان را اضافه کنید، سپس یک مقایسه، جدول یا کارت امتیاز ذخیره شده ایجاد کنید.
باز کردن مرحله ←روزهای 8-10
یک REST، SSE یا وبهوکهای زمانبندی شده را انتخاب کنید و یک اجرای موفق API دیگر را در روزی متفاوت به پایان برسانید.
باز کردن مرحله ←روزهای 11-13
اضافه کردن مهلتهای زمانی (timeouts)، تلاشهای مجدد محدود، اعتبارسنجی پاسخ، ثبت وقایع امن برای اعتبارنامهها و نظارت بر دادههای قدیمی.
باز کردن مرحله ←روز 14
تأیید کنید که API یک شغل تکرارپذیر را فراهم میکند که تیم شما حفظ خواهد کرد، سپس مجموعه داده یا جریان کاری برنامه بعدی را انتخاب کنید.
باز کردن مرحله ←Production readiness
Production reliability comes from treating status codes differently, keeping retries bounded, reusing ETags, and choosing scheduled REST, SSE, or webhooks for the job.
مثال کاربردی
کلید خود را در نگه دارید FXMD_API_KEY; هرگز آن را در کنترل منبع (source control) قرار ندهید.
import os
import requests
from urllib3.util.retry import Retry
session = requests.Session()
retry = Retry(total=3, backoff_factor=0.5, status_forcelist=(429, 502, 503, 504))
session.mount("https://", requests.adapters.HTTPAdapter(max_retries=retry))
response = session.get(
"https://api.fxmacrodata.com/v1/announcements/eur/inflation",
params={"api_key": os.environ["FXMD_API_KEY"], "limit": 5},
headers={"Accept-Encoding": "gzip"},
timeout=(3.05, 20),
)
response.raise_for_status()
نتیجه مورد انتظار: A bounded client that handles transient failures without retry storms and is ready to add ETag-based conditional refreshes.
زمانی که اولین اسکریپت به یک سیستم واقعی تبدیل میشود
زمانی که یک پاسخ با شکست مواجه شد، دادهای برنگرداند یا به کنترلهای تولیدی مانند کشینگ، تایماوتها، تلاشهای مجدد و تحویل رویداد نیاز داشت، از این راهنماها استفاده کنید.
| راهنما | زمانی از آن استفاده کنید که | شروع |
|---|---|---|
| عیبیابی پاسخهای ناموفق یا خالی | جداسازی مشکلات احراز هویت، دسترسی، مسیر، محدودیت نرخ و در دسترس بودن دادهها بدون افشای کلید شما. | باز کردن راهنما ← |
| آمادهسازی کلاینت API برای محیط عملیاتی | افزودن timeoutها، تلاشهای مجدد محدود، کشینگ، درخواستهای شرطی و الگوی تحویل مناسب. | باز کردن راهنما ← |