ថ្ងៃ 0
បញ្ជាក់ការចូលប្រើ
បង្កើត key បំពេញសំណើដែលមានការផ្ទៀងផ្ទាត់មួយ ហើយរក្សាទុកការឆ្លើយតបដំបូងជាមួយនឹង metadata របស់វា។
បើកជំហាន →មគ្គុទ្ទេសក៍លំហូរការងារ API
ជ្រើសរើសលទ្ធផលដែលជិតបំផុតនឹងការងាររបស់អ្នក។ ផ្លូវនីមួយៗផ្តល់ឱ្យអ្នកនូវការស្នើសុំដែលដំណើរការមួយ, អ្វីដែលចម្លើយគួរមាន, របៀបពិនិត្យថាតើវាដំណើរការឬទេ, និងជំហានដែលមានប្រយោជន៍បន្ទាប់។
ផ្លូវអនុវត្តជាក់ស្តែងចំនួនប្រាំ
Selected: Harden a client
ការសាកល្បង API រយៈពេល 14 ថ្ងៃរបស់អ្នក
គោលដៅមិនមែនជាការចូលទៅកាន់គ្រប់ទំព័រផលិតផលនោះទេ។ វាគឺដើម្បីបញ្ចប់ការងារ API ដែលមានការផ្ទៀងផ្ទាត់ប្រយោជន៍, ត្រឡប់មកវិញនៅថ្ងៃផ្សេងទៀត, និងចាកចេញជាមួយសំណុំទិន្នន័យ ឬលំហូរការងារកម្មវិធីដែលអាចធ្វើឡើងវិញបាន។
ថ្ងៃ 0
បង្កើត key បំពេញសំណើដែលមានការផ្ទៀងផ្ទាត់មួយ ហើយរក្សាទុកការឆ្លើយតបដំបូងជាមួយនឹង metadata របស់វា។
បើកជំហាន →ថ្ងៃ 1-2
ដោះស្រាយបញ្ហាការផ្ទៀងផ្ទាត់ ឬបញ្ហា filter និងបំប្លែង script ដំបូងទៅជាការងារឈ្មោះដែលអាចធ្វើឡើងវិញបាន។
បើកជំហាន →ថ្ងៃ 3-4
ប្រើប្រាស់ប្រតិទិនជាគ្រួសារ endpoint ទីពីរ និងកំណត់កាលវិភាគការដំណើរការ API ដែលមានប្រយោជន៍បន្ទាប់។
បើកជំហាន →ថ្ងៃ 5-7
បន្ថែមការរំពឹងទុក ឬក្រុមតូចនៃស៊េរីម៉ាក្រូ រួចបង្កើតការប្រៀបធៀប តារាង ឬកាតពិន្ទុដែលបានរក្សាទុកមួយ។
បើកជំហាន →ថ្ងៃ 8-10
ជ្រើសរើស REST, SSE ដែលបានកំណត់ពេល ឬ webhooks និងបញ្ចប់ការដំណើរការ 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.
នៅពេលដែល script ដំបូងក្លាយជាប្រព័ន្ធពិតប្រាកដ
ប្រើប្រាស់មគ្គុទ្ទេសក៍ទាំងនេះ នៅពេលដែលការឆ្លើយតបបរាជ័យ, មិនផ្តល់ទិន្នន័យ ឬត្រូវការការគ្រប់គ្រងផលិតកម្មដូចជា caching, timeouts, retries និងការបញ្ជូនព្រឹត្តិការណ៍។
| មគ្គុទ្ទេសក៍ | ប្រើប្រាស់វា នៅពេល | ចាប់ផ្តើម |
|---|---|---|
| វិនិច្ឆ័យ response ដែលបរាជ័យ ឬទទេ | បំបែកបញ្ហាការផ្ទៀងផ្ទាត់, ការចូលប្រើប្រាស់, ផ្លូវ, កម្រិតកំណត់អត្រា, និងភាពអាចរកបាននៃទិន្នន័យ ដោយមិនបង្ហាញកូនសោរបស់អ្នក។ | បើកមគ្គុទ្ទេសក៍ → |
| ធ្វើឱ្យ client API ត្រៀមរួចជាស្រេចសម្រាប់ផលិតកម្ម | បន្ថែម timeouts, bounded retries, caching, conditional requests, និងគំរូនៃការផ្តល់ជូនដែលត្រឹមត្រូវ។ | បើកមគ្គុទ្ទេសក៍ → |