• ۰۷۱-۹۱۳۰۰۳۱۹ (روزهای کاری ۹ الی ۱۷)

این سند به منظور آشنایی با نحوه استفاده از API وب‌آلفا تنظیم گردیده است.

در حال حاضر این API دارای قابلیت‌های زیر است:

  • انجام عملیات مرتبط با دامنه‌های نقطه آی‌آر

اصول کلی استفاده

درخواستها و پاسخ آنها به وسیلهٔ پیغامهایی انجام میگیرد که به صورت JSON نگاشته میشوند. در این روش کاربران، درخواستهای خود را بصورت یک JSON ایجاد کرده و آن را به آدرس API مورد نظر ارسال میکند و پاسخی با فرمت JSON نیز دریافت میکنند.

جهت تصدیق شناسه شما توسط سامانه بایستی کلید API که مختص هر کاربر است در Header درخواست و با کلیدی با نام X-Api-Key قرار داده شود.

درخواست

متد ارسال اطلاعات به API بسته به نوع عملیات میتوانید یکی از انواع GET، POST، PUT، PATCH و DELETE باشد.
نکته: در درخواست‌هایی که نیاز به ارسال داده دارند، مقدار Header مربوط به Content-Type بایستی بر روی application/json قرار داده شود.

curl -X GET \
  https://www.webalfa.net/api/v1/ \
  -H 'x-api-key: demo-key'

پاسخ

در صورت موفقیت آمیز بودن عملیات مقدار پارامتر success به صورت true برگردانده خواهد شد. در غیر این صورت مقدار آن false خواهد بود. در صورتی که نیاز باشد اطلاعاتی از جانب API برگردانده شود این اطلاعات در فیلد result قرار داده خواهد شد.

{
 "success": true,
 "result": {
 "version": "1"
 }
}

در صورت موفقیت آمیز نبودن عملیات در پارامتر errors آرایه‌ای که شامل لیستی از خطاهایی است که منجر به لغو عمالیات شده است برگردانده میشود. هر خطا دارای فیلد code جهت مشخص سازی شماره خطا، فیلد message که حاوی متن خطا به زبان انگلیسی و همچنین در صورت نیاز فیلدی با نام extra است که اطلاعاتی تکمیلی در مورد خطای رخ داده شده و دلیل نادرست بودن آن را مشخص میکند.

{
  "success": false,
  "errors": [
    {
      "code": 404,
      "message": "Unrecognized request",
      "extra": {
        "incorrect_parameter": {
          "value": "Incorrect Value",
          "parameter_attribute": "Attribute value",
          "reason": "Reason of problem with the value"
        }
      }
    }
  ]
}

نکته: وجود فیلدهای parameter_attribute و reason در پاسخ خطا ضروری نمیباشد و ممکن است در پاسخ وجود نداشته باشد. در صورت وجود فیلد extra در پاسخ تنها وجود مقدار incorrect_parameter و value در پاسخ قطعی است.

عملیات مرتبط با دامنه‌های نقطه آی‌آر

برای انجام امور مربوط به دامنه‌ها درخواستهای زیر قابل استفاده است.

ثبت

این درخواست برای ثبت یک دامنه جدید انجام میگیرد.

برای ثبت دامین میبایست در قسمت رابطه های مجاز در nic.ir دسترسی به نمایندگان برای شناسه صاحب امتیاز مورد نظر فعال باشد، بعد از ثبت دامنه کاربر میتواند این دسترسی را لغو کنید.

POST https://www.webalfa.net/api/v1/domain/irnic/register

پارامترها

نام توضیحات محدودیت
name
(string)
نام کامل دامنه اجباری
حداقل طول: ۳
حداکثر طول: ۶۳
period
(int)
مدت ثبت اجباری
حداقل و حداکثر طول: ۱
مقادیر مجاز: ۱ و ۵
contacts
(array)
شناسه‌های holder، admin، tech و bill دامنه اجباری
حداقل و حداکثر آیتم: ۴
nameservers
(array)
نام سرورهای دامنه، هر نام سرور به صورت شیئی متشکل از hostname و در صورت نیاز ip اجباری
حداقل آیتم: ۱
حداکثر آیتم: ۴

نمونه درخواست (cURL)

curl -X POST \
  https://www.webalfa.net/api/v1/domain/irnic/register \
  -H 'content-type: application/json' \
  -H 'x-api-key: demo-key' \
  -d '{
  "name": "example.ir",
  "period": "1",
  "contacts": {
    "holder": "ta-irnic",
    "admin": "ta-irnic",
    "tech": "ta-irnic",
    "bill": "ta-irnic"
  },
  "nameservers": [
    {
      "hostname": "ns1.example.ir",
      "ip": "8.8.8.8"
    },
    {
      "hostname": "ns2.webalfa.ir"
    }
  ]
}'

نمونه پاسخ

{
  "success": "true"
}

تمدید

این درخواست برای تمدید یک دامنه انجام میگیرد. این درخواست تنها برای دامنه‌هایی که قبلا توسط درخواست دهنده (نماینده) از طریق API ثبت شده است کاربرد دارد.

در صورتی نیاز به تمدید دامنه‌ای که قبلا توسط API ثبت نشده است مستندات بخش “انتقال” را مطالعه نمایید.

PUT https://www.webalfa.net/api/v1/domain/irnic/renew/:domain_name

بجای پارامتر :domain_name در URL بایستی نام دامنه قرار داده شود.

پارامترها

نام توضیحات محدودیت
period
(int)
مدت تمدید اجباری
حداقل و حداکثر طول: ۱
مقادیر مجاز: ۱ و ۵

نمونه درخواست (cURL)

curl -X PUT \
  https://www.webalfa.net/api/v1/domain/irnic/renew/example.ir \
  -H 'content-type: application/json' \
  -H 'x-api-key: demo-key' \
  -d '{
  "period": "1"
}'

نمونه پاسخ

{
  "success": "true"
}

انتقال

این درخواست برای انتقال و تمدید دامنه ای انجام میشود که قبلا توسط نماینده درخواست ثبت آن به API ارسال نشده است و کنترل آن هم اکنون بر عهده نماینده دیگری است.

جهت موفقیت آمیز بودن این عملیات نیاز است تا دو مورد زیر رعایت شود:

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

۲. رابط نماینده دامنه برابر شناسه وب‌آلفا (ta1822-irnic) باشد.

برای انجام مورد ۲ کافی است تا بعد از تنظیم شناسه کاربر نماینده به عنوان رابط مالی دامنه (توسط صاحب امتیار دامنه)، نماینده از طریق پنل کاربری nic.ir اقدام به تنظیم شناسه وب‌آلفا به عنوان نماینده دامنه نمایید. در صورت انجام این عملیات توسط nic.ir ایمیلی جهت اطلاع صاحب امتیاز برای ایشان ارسال خواهد شد که در آن ایمیل هیچگونه نامی از وب‌آلفا ذکر نخواهد شد.

PUT https://www.webalfa.net/api/v1/domain/irnic/transfer/:domain_name

بجای پارامتر :domain_name در URL بایستی نام دامنه قرار داده شود.

پارامترها

نام توضیحات محدودیت
period
(int)
مدت تمدید اجباری
حداقل و حداکثر طول: ۱
مقادیر مجاز: ۱ و ۵

نمونه درخواست (cURL)

curl -X PUT \
  https://www.webalfa.net/api/v1/domain/irnic/transfer/example.ir \
  -H 'content-type: application/json' \
  -H 'x-api-key: demo-key' \
  -d '{
  "period": "1"
}'

نمونه پاسخ

{
  "success": "true"
}

بروزرسانی

این درخواست برای بروزرسانی نام‌سرورها و رابط‌های دامنه کاربرد دارد.

GET https://www.webalfa.net/api/v1/domain/irnic/update/:domain_name

بجای پارامتر :domain_name در URL بایستی نام دامنه قرار داده شود.

نمونه درخواست (cURL)

curl -X POST \
  https://www.webalfa.net/api/v1/domain/irnic/update/example.ir \
  -H 'content-type: application/json' \
  -H 'x-api-key: demo-key' \
  -d '{
  "contacts": {
    "admin": "ta-irnic",
    "tech": "ta-irnic",
  },
  "nameservers": [
    {
      "hostname": "ns1.example.ir",
      "ip": "8.8.8.8"
    },
    {
      "hostname": "ns2.webalfa.ir"
    }
  ]
}'

نمونه پاسخ

{
  "success": "true"
}

اطلاعات

این درخواست برای دریافت اطلاعات تکمیلی یک دامنه بکار می‌رود.

GET https://www.webalfa.net/api/v1/domain/irnic/info/:domain_name

بجای پارامتر :domain_name در URL بایستی نام دامنه قرار داده شود.

نمونه درخواست (cURL)

curl -X GET \
  https://www.webalfa.net/api/v1/domain/irnic/info/example.ir \
  -H 'x-api-key: demo-key'

نمونه پاسخ

{
  "success": "true",
  "result": {
    "status": [
      "ok",
      "irnicRegistered"
    ],
    "contacts": {
      "holder": "ta-irnic",
      "admin": "ta-irnic",
      "tech": "ta-irnic",
      "bill": "ta-irnic",
      "reseller": "ta1822-irnic"
    },
    "nameservers": [
      {
        "hostname": "ns1.example.ir",
        "ip": "8.8.8.8"
      },
      {
        "hostname": "ns2.webalfa.ir"
      }
    ],
    "expiry_date": "2022-08-06T00:02:43"
  }
}

 

Leave a Reply

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *