Օր 0
Ապացուցել հասանելիությունը
Ստեղծեք բանալին, կատարեք մեկ վավերացված հարցում և պահպանեք առաջին պատասխանը իր մետատվյալներով:
Բացել քայլը →API աշխատանքային հոսքի ուղեցույց
Ընտրեք ձեր աշխատանքին ամենամոտ արդյունքը: Յուրաքանչյուր ուղի ձեզ տալիս է մեկ աշխատանքային հարցում, թե ինչ պետք է պարունակի պատասխանը, ինչպես ստուգել դրա աշխատանքը և հաջորդ օգտակար քայլը:
Հինգ գործնական ուղիներ
Selected: Harden a client
Ձեր 14-օրյա API փորձաշրջանը
Նպատակը ոչ թե յուրաքանչյուր ապրանքի էջ այցելելն է: Նպատակն է կատարել օգտակար վավերացված API աշխատանք, վերադառնալ մեկ այլ օր և հեռանալ կրկնվող տվյալների հավաքածուով կամ աշխատանքային գործընթացով:
Օր 0
Ստեղծեք բանալին, կատարեք մեկ վավերացված հարցում և պահպանեք առաջին պատասխանը իր մետատվյալներով:
Բացել քայլը →Օր 1-2
Լուծեք նույնականացման կամ զտման (filter) խնդիրները և առաջին սկրիպտը վերածեք անվանված կրկնվող առաջադրանքի:
Բացել քայլը →Օրեր 3-4
Օգտագործեք օրացույցը որպես երկրորդ endpoint ընտանիք և պլանավորեք հաջորդ օգտակար API գործարկումը:
Բացել քայլը →Օրեր 5-7
Ավելացրեք սպասելիքներ կամ մակրո սերիաների փոքր խումբ, այնուհետև ստեղծեք մեկ պահպանված համեմատություն, աղյուսակ կամ հաշվեկշիռ:
Բացել քայլը →Օր 8-10
Ընտրեք պլանավորված REST, SSE կամ webhooks և կատարեք ևս մեկ հաջողված API գործարկում այլ օր:
Բացել քայլը →Օրեր 11-13
Ավելացրեք timeout-ներ, սահմանափակված կրկնություններ, պատասխանի վավերացում, վավերացման անվտանգ լոգավորում և հնացած տվյալների մոնիթորինգ:
Բացել քայլը →Օր 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; երբեք մի տեղադրեք այն աղբյուրների վերահսկման մեջ:
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.
Երբ առաջին սկրիպտը դառնում է իրական համակարգ
Օգտագործեք այս ուղեցույցները, երբ պատասխանը ձախողվում է, տվյալներ չի վերադարձնում կամ պահանջում է արտադրական վերահսկողություն, ինչպիսիք են caching-ը, timeout-ները, կրկնությունները և իրադարձությունների առաքումը:
| Ուղեցույց | Օգտագործեք այն, երբ | Սկսել |
|---|---|---|
| Ախտորոշել ձախողված կամ դատարկ պատասխանը | Առանձնացրեք նույնականացման, հասանելիության, ուղու, սահմանափակման (rate-limit) և տվյալների հասանելիության խնդիրները՝ առանց ձեր բանալին բացահայտելու: | Բացել ուղեցույցը → |
| Դարձրեք API հաճախորդին արտադրական պատրաստության մեջ | Ավելացնել ժամանակի սահմանափակումներ (timeouts), սահմանափակ փորձեր (bounded retries), քեշավորում, պայմանական հարցումներ և առաքման ճիշտ օրինաչափություն: | Բացել ուղեցույցը → |