رهنمودهای یکپارچه‌سازی | Layatanahi
dr

Api

رهنمودهای یکپارچه‌سازی#

این‌ها عمل‌هایی هستند که یک یکپارچه‌سازی را در طول زمان درست، کم‌هزینه و امن نگه می‌دارند. آن‌ها توصیه‌ای هستند، نه چیزی که API آن‌ها را تحمیل کند، اما بیشتر پرسش‌های پشتیبانی به نادیده گرفته‌شدن یکی از آن‌ها بازمی‌گردد.

هویت و امنیت#

عملچرا
یک اعتبارنامه برای هر سیستم مصرف‌کنندهمصرف قابل انتساب است و بازپس‌گیری دقیق
کمترین صلاحیت‌هایک کار گزارش‌گیری به stock:read یا orders:read نیاز ندارد
کمترین شعبه‌هایک ابزار محلی نباید همه شعبه‌ها را بخواند
راز در یک مدیر رازاز نشت از طریق لاگ‌ها و مخازن کد جلوگیری می‌کند
چرخش با تغییر کارمنداناعتبارنامه اختییار کارمند را به ارث می‌برد
بازپس‌گیری اعتبارنامه‌های رهاشدهیک توکن بی‌کار یک دری است که زیر نظارت نیست

هیچ‌گاه توکن حامل را log نکنید. هرگز آن را در مرورگر، اپ موبایل یا یک مخزن عمومی جاسازی نکنید.

مدیریت داده#

عملچرا
id منبع را به‌عنوان کلید خارجی ذخیره کنیدشناسه‌ها باثبات‌اند؛ شماره فاکتورها ممکن است ویرایش شوند
created_at را برای واترمارک‌ها ذخیره کنیدهمگام‌سازی تدریجی بدون تکرار را ممکن می‌سازد
مبلغ‌ها را اعشاری در نظر بگیریدمقدارها و مبلغ‌ها می‌توانند کسری باشند
کود ارز فاکتور را نگه داریدAPI هیچ تبدیلی انجام نمی‌دهد
language_code را ثابت (pin) کنیدنام‌ها در غیر این صورت با زبان رابط کاربری تغییر می‌کنند
وضعیت را از برچسب‌ها استنتاج نکنیدبرای منطق از status_id و برای نمایش از status استفاده کنید

داده‌های شخصی (نام مشتریان، تلفن‌ها، ایمیل‌ها) در جزئیات فروش و خرید ظاهر می‌شوند. با آن‌ها مطابق سیاست حریم خصوصی شرکت شما و شرایط پلتفرم رفتار کنید.

همگام‌سازی#

  1. برای هر منبع یک واترمارک انتخاب کنید، نه یک واترمارک سراسری.
  2. کوچک‌ترین صفحه‌ای را درخواست کنید که تعداد درخواست‌ها را معقول نگه می‌دارد؛ per_page=100 برای کارهای زمان‌بندی‌شده معمولاً درست است.
  3. پردازش را با upsert روی id منبع idempotent بسازید.
  4. وقتی تازه‌ترین رشته از قبل شناخته شده است، متوقف شوید.
  5. یک نشانگر شکست برای هر منبع نگه دارید تا یک رکورد بد همه‌چیز را بلوکه نکند.

فراتر از آنچه API مستند می‌کند فرض ترتیب نسازید. محصولات و موجودی بر اساس id مرتب می‌شوند؛ اسناد تجارت جدیدترین اول.

مدیریت خطا#

موقعیتپاسخ درست
401هشدار دهید، اعتبارنامه را بچرخانید، در یک حلقه دوباره تلاش نکنید
403 api_ability_deniedهشدار دهید؛ یک نقش در سیستم مبدأ تغییر کرده است
403 branch_scope_deniedپیکربندی را درست کنید؛ شناسه‌های شعبه دیگر را امتحان نکنید
422 branch_requiredX-Business-Branch را صریحاً بفرستید
429Retry-After را رعایت کنید، سپس backoff نمایی
500با backoff و یک سقف دوباره تلاش کنید؛ پس از شکست‌های مکرر هشدار دهید

وضعیت، error.code و نقطه پایانی را log کنید. بدنه درخواست‌های حاوی داده شخصی را log نکنید.

کارایی#

  • پاسخ context را برای مدت یک کار کش کنید به‌جای فراخوانی آن برای هر رکورد.
  • کاتالوگ محصولات را کش کنید؛ آن بسیار کمتر از فروش‌ها تغییر می‌کند.
  • یک صفحه 100 تایی را به چهار صفحه 25 تایی ترجیح دهید.
  • همگام‌سازی‌های سنگین را بیرون از ساعات اوج تجارت اجرا کنید تا از ترافیک تعاملی دور بمانید.
  • اتصالات HTTP را دوباره استفاده کنید و اگر کلاینت‌تان پشتیبانی می‌کند فشرده‌سازی را فعال سازید.

نسخه‌بندی و مدیریت تغییر#

  • بر اساس /api/v2 بسازید؛ v1 یک سطح داخلی است.
  • فیلدهای افزوده را تحمل کنید: کلیدهای جدید ممکن است در پاسخ‌ها ظاهر شوند.
  • به ترتیب فیلدها در شیءهای JSON وابسته نشوید.
  • گزارش تغییرات را دنبال کنید و پس از تغییرات دوباره آزمون کنید.
  • انتظارات یکپارچه‌سازی را در آزمون‌های قراردادی خودکار ثابت کنید.

چک‌لیست مرور#

  • [ ] اعتبارنامه به نام سیستم مصرف‌کننده نام‌گذاری شده.
  • [ ] فقط صلاحیت‌های لازم اعطا شده‌اند.
  • [ ] دامنه شعبه با نیاز تجارت هم‌خوان است.
  • [ ] راز بیرون از مخزن کد ذخیره شده.
  • [ ] واترمارک برای هر منبع ذخیره شده.
  • [ ] 429 با Retry-After مدیریت می‌شود.
  • [ ] توکن هرگز log نمی‌شود.
  • [ ] مسئول چرخش و تاریخ آن مستند شده.
  • [ ] یکپارچه‌سازی روی یک تجارت staging آزمون شده.

صفحات مرتبط#