سرویس‌های انتشار نسخه‌ی جدید در مایکت

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

برای انتشار یک نسخه‌ی جدید از برنامه‌ی خود کافی است با سرویس «ایجاد و ویرایش اطلاعات یک بسته» یک بسته‌ی جدید ایجاد و سپس با استفاده از سرویس «بارگذاری فایل نسخه» فایل apk نسخه‌ی جدید برنامه‌ی خود را آپلود کنید. در نهایت با استفاده از سرویس «ارسال بسته برای بررسی تایید» این بسته را جهت بررسی و تایید ارسال کنید.

احراز هویت

برای استفاده از تمامی سرویس‌ها باید کلید X-Access-Token را از پنل توسعه‌دهندگان، بخش محصولات درون‌برنامه‌ای برنامه مورد نظر، قسمت محصولات و «توکن صحت‌سنجی» دریافت نمایید و به عنوان Header در سرویس خود قرار دهید.

سرویس «دریافت لیست بسته‌های یک برنامه»

از این سرویس به منظور دریافت لیستی از تمام نسخه‌های بارگذاری شده برای یک برنامه استفاده خواهد شد.

  1. [GET]
  2. [Header: X-Access-Token]
  3. https://developer.myket.ir/partners/applications/{packageName}/release-bundle?status={status}&offset={offset}&limit={limit}
ورودی‌ها

PACKAGE_NAME: نام پکیج برنامه شماست: مثلا ir.mservices.mybook

STATUS: برای فیلتر کردن بسته‌های برنامه‌ی شما مورد استفاده قرار می‌گیرد و در صورتی که از این Query String استفاده نکنید، لیست تمام بسته‌ها را بر می‌گرداند. این فیلد می‌تواند شامل موارد زیر باشد:

0: بسته‌‌ای که شده و هنوز برای بررسی برای ادمین ارسال نشده‌اند.

1: بسته‌هایی که در حال بررسی توسط ادمین هستند.

2: بسته‌هایی که توسط ادمین رد شده‌اند.

3: بسته‌هایی که توسط ادمین تایید شده‌اند.

4: بسته‌هایی که لغو انتشار شده‌اند.

OFFSET: از پارامتر {offset} برای صفحه‌بندی پاسخ دریافتی از API استفاده می‌شود و مقدار آن باید بزرگتر از 0 باشد. 

Limit: از پارامتر {limit} برای محدود کردن تعداد آیتم‌های دریافتی استفاده می‌شود. مقدار معتبر برای این پارامتر در بازه 1 تا 20 است.

خروجی‌ها
خروجی موفق
در صورتی که برای بسته وارد شده نسخه‌ای وجود داشته باشد جواب به صورت زیر برگردانده می‌شود.

 {
    "eol":  انتهای لیست,
   "releases" :[
    {
      "title": "عنوان برنامه",
      "status": "وضعیت انتشار برنامه",
      "createdAt": "تاریخ و ساعت ایجاد",
      “id” : “شناسه نسخه”
      "versions": [
        {
          "packageName": "نام بسته برنامه",
          "versionCode": "شماره ورژن نسخه",
          "versionNumber": "نام ورژن نسخه",
          "approvalState": "وضعیت تایید یا رد نسخه",
          "cpuArch": "معماری پردازنده مرتبط با نسخه",
          "uploadDate": "تاریخ بارگذاری نسخه",
          "minSdkVersion": "حداقل نسخه مورد نیاز از sdk برای اجرای برنامه",
          "fileSize": "حجم فایل نسخه",
          "translationInfos": [
            {
              "language": "زبان",
              "description": "توضیحات"
            }
          ]
        }
      ]
    }
]
}

خروجی ناموفق: در صورتی که بسته وجود نداشته باشد و یا متعلق به کاربر جاری نباشد:

HttpStatusCode: 401

سرویس «ایجاد و ویرایش اطلاعات یک بسته»

اگر اطلاعات برای یک بسته وجود داشته باشد این سرویس آن‌ را ویرایش کرده و در غیر اینصورت اطلاعات جدیدی را برای آن بسته ثبت می‌کند.

[PUT]
[Header: X-Access-Token]
https://developer.myket.ir/api/partners/applications/{packageName}/release-bundle

ورودی‌ها
PACKAGE_NAME: نام پکیج برنامه
پارامترهای Body:

{
    "title" : "عنوان",
    "stagedRolloutPercent" : درصد کاربرانی که نسخه جدید را دریافت خواهند کرد,
    "translationInfos" : [
        {
            "description" : "توضیحات به زبان انگلیسی",
            "language" : "en"
        },
         {
            "description" : "توضیحات به زبان فارسی",
            "language" : "fa"
        }
    ]
}

خروجی‌ها
خروجی موفق:

HttpStatusCode: 200
{
    "code": 200,
    "messageCode": "Successful",
    "translatedMessage": "عملیات با موفقیت انجام شد."
}

خروجی ناموفق:

در صورتی که برنامه متعلق به کاربر جاری نباشد و یا وی اجازه ایجاد تغییرات در آن را نداشته باشد: 

HttpStatusCode: 401

در صورتی که هیچ کدام از ورژن‌های بارگذاری شده قابل بررسی نباشد:

HtppStatusCode: 400
{
    "code": 400,
    "messageCode": " UploadReleaseVersionFailed",
    "translatedMessage": "آپلود نسخه ها با خطا مواجه شد."
}

در صورتی که اطلاعات مورد نیاز برای تکمیل اطلاعات بسته به صورت کامل پر نشود:

HtppStatusCode: 400
{
    "code": 400,
    "messageCode": " MissingRequiredData",
    "translatedMessage": "اطلاعات اجباری وارد نشده است.”
}

در صورتی که برنامه دارای نسخه ای درحال بررسی باشد:

HtppStatusCode: 400
{
    "code": 400,
    "messageCode": " EditNotPossible",
    "translatedMessage": "عملیات ویرایش امکان پذیر نیست. ابتدا باید نسخه قبلی خود را به صورت دستی منتشر کنید.”
}

سرویس «بارگذاری فایل نسخه»

از این سرویس برای بارگذاری و اضافه کردن بسته جدید به برنامه موجود استفاده خواهد شد. برای استفاده از این سرویس ابتدا باید با استفاده از سرویس «تکمیل اطلاعات یک بسته» یک بسته جدید ایجاد شود. 

[Put]
[Header: X-Access-Token]
https://developer.myket.ir/api/partners/applications/{packageName}/release-bundle/upload

ورودی‌ها
PACKAGE_NAME: نام پکیج برنامه
برای بارگذاری فایل باید آن را به صورت MultiPartFormData ارسال کنید:

Curl put \
--location "https://developer.myket.ir/api/partners/applications/{packageName}/release-bundle/upload" \
--header 'X-Access-Token: d18a1fd4-83de-4f00-a004-7834ba25c6eb' \
--form '=@"test.apk"'

خروجی‌ها
خروجی موفق
در صورتی که بارگذاری نسخه با موفقیت انجام شود:

[
    {
        "resultCode": "Successful"
    }
]

خروجی ناموفق
در صورتی که بارگذاری فایل با خطا مواجه شود:

HtppStatusCode: 400
{
    "code": 400,
    "messageCode": "PostAppFailed",
    "translatedMessage": "."
}

در صورتی که هیچ فایلی برای سرور ارسال نشود و یا فایل‌های ارسال شده معتبر نباشند:

HtppStatusCode: 400
{
    "code": 400,
    "messageCode": "BadRequest",
    "translatedMessage": "درخواست نامعتبر."
}

در صورتی که بسته وجود نداشته باشد:

HtppStatusCode: 400
{
    "code": 400,
    "messageCode": "ReleaseNotFound",
    "translatedMessage": "بسته جاری یافت نشد."
}

در صورتی که بسته متعلق به کاربر جاری نباشد:

HttpStatusCode: 401

سرویس «حذف بسته‌ی جاری»

از این سرویس به منظور حذف یک بسته از بسته‌های موجود برنامه استفاده می‌شود.

[DELETE]
[Header: X-Access-Token]
https://developer.myket.ir/api/partners/applications/{packageName}/release-bundle

ورودی‌ها
PACKAGE_NAME: نام پکیج برنامه

خروجی‌ها
خروجی موفق:

{
    "code": 200,
    "messageCode": "Successful",
    "translatedMessage": "عملیات با موفقیت انجام شد."
}

خروجی ناموفق:
در صورتی که برنامه متعلق به کاربر جاری نباشد و یا وی اجازه ایجاد تغییرات در آن را نداشته باشد:

HttpStatusCode: 401

در صورتی که بسته‌ای برای برنامه درخواستی وجود نداشته باشد:

HtppStatusCode: 400
{
    "code": 400,
    "messageCode": " NotFound",
    "translatedMessage": "داده ای یافت نشد."
}

سرویس «ارسال بسته برای بررسی تایید»

از این سرویس برای ارسال درخواست بررسی برای بسته‌های بارگذاری شده برای یک برنامه استفاده می‌شود. 

[POST]
[Header: X-Access-Token]
https://developer.myket.i/apir/partners/applications/{packageName}/release-bundle/commit

ورودی‌ها
PACKAGE_NAME: نام پکیج برنامه

Body:

{
    "isManualPublish" : true|false
    "message" : "sample message for admin",
}

در صورتی که IsManualPublish مقدار false داشته باشد، بعد از تایید مدیر برنامه منتشر می‌شود و در صورتی که مقدار true برای آن در نظر گرفته شود توسعه دهنده باید پس از تایید مدیر به صورت دستی اقدام به انتشار آن نماید. فیلد Message هم، پیامی است که توسعه‌دهنده می‌تواند برای بررسی به مدیر سیستم ارسال کند.

خروجی‌ها
خروجی موفق:

{
    "code": 200,
    "messageCode": "Successful",
    "translatedMessage": "عملیات با موفقیت انجام شد."
}

خروجی ناموفق:
در صورتی که برنامه متعلق به کاربر جاری نباشد و یا وی اجازه ایجاد تغییرات در آن را نداشته باشد:

HttpStatusCode: 401

سرویس «لغو درخواست بررسی بسته‌ی جاری»

از این سرویس برای لغو درخواست بررسی بسته‌های بارگذاری شده برای یک برنامه استفاده می‌شود.

[DELETE]
[Header: X-Access-Token]
https://developer.myket.ir/api/partners/applications/{packageName}/release-bundle/revert

ورودی‌ها
PACKAGE_NAME: نام پکیج برنامه

خروجی‌ها
خروجی موفق:

{
    "code": 200,
    "messageCode": "Successful",
    "translatedMessage": "عملیات با موفقیت انجام شد."
}

خروجی ناموفق:

در صورتی که برنامه متعلق به کاربر جاری نباشد و یا وی اجازه ایجاد تغییرات در آن را نداشته باشد: 

HttpStatusCode: 401
Was this article helpful?
Dislike 0
قبلی: مدیریت محصولات درون‌برنامه‌ای با استفاده از API
بعدی: استفاده از API صحت سنجی خرید