نمای کلی

ساختار API به توسعه دهندگان این امکان را می دهد تا فینگ را با سایر خدمات خودکار، گسترش و ترکیب کنند. می‌توانید از API فینگ برای ایجاد، لیست، دیپلوی، روشن و ... برنامه‌ها ، برای ساخت، mount و unmount کردن دیسک‌ها و همچنین برای مشاهده لیست پلن‌ها و انجام کارهای دیگری که قبلاً فقط با فینگ CLI یا داشبورد انجام می‌شد، استفاده کنید.

احراز هویت

برای استفاده کردن از API فینگ باید هر درخواست دارای توکن احراز هویت باشد که با کلید Authorization: Bearer {token} ارسال می‌شود. برای این منظور از داشبورد برنامه، قسمت پروفایل خود، گزینه‌ی حساب کاربری را انتخاب کرده و بر روی ایجاد توکن جدید کلیک نمایید. سپس نامی برای توکن خود وارد کنید.

create token

برای استفاده از توکن ساخته شده در هر endpoint ، به روش زیر عمل کنید:

"Accept": "application/json"
"Authorization": `Bearer {token}`

استفاده از توکن در مسیرهای

برای استفاده از API فینگ باید درخواست‌‌های شما به این آدرس باشد: https://api.fing.ir

برنامه‌ها

برای اینکه بتوانید در مسیرهای مختلف برنامه از API فینگ استفاده کنید، به روش زیر انجام دهید:

ایجاد برنامه

POST: /v1/apps
  • ورودی:
{
"label": "app-name",
"plan_id": "2",
"platform": "node",
"region": "iran"
}
  • خروجی:
{
"id": 30846,
"name": "app-name",
"label": "app-name",
"platform": "node",
"package": "",
"port": 80,
"kind": "web",
"region": "iran",
"cpu": 0.15,
"memory": 0.2,
"storage": 2,
"created_at": "2022-05-19T07:53:24.000Z"
}

لیست برنامه

GET: /v1/apps
  • خروجی:
[
{
"id": 30846,
"name": "app-name",
"label": "app-name",
"platform": "next",
"package": "",
"kind": "web",
"region": "iran",
"port": 80,
"published_ports": [39066],
"status": "running",
"image": "",
"resources": { "cpu": 0.15, "memory": 0.2, "storage": 2 },
"url": "https://app-name.onfing.ir",
"created_at": "2022-05-19T07:53:24.000Z",
"hourly_price": 261,
"monthly_price": 190000,
"env": [],
"domains": [
{
"id": 2311,
"name": "app-name.onfing.ir",
"valid": true,
"tls": true,
"only_tls": true,
"disabled": false,
"records": []
}
]
}
]

حذف برنامه

DELETE: /v1/apps/{app-name}
  • خروجی:
{}

تغییر پلن برنامه

POST: /v1/apps/{app-name}/change-plan
  • ورودی:
{
"plan_id": 2,
"expand_storage": true // در صورتی که قصد افزایش هارد برنامه را دارید
}
  • خروجی:
{}

استارت برنامه

POST: /v1/apps/{app-name}/start
  • خروجی:
{}

خاموش کردن برنامه

POST: /v1/apps/{app-name}/shutdown
  • خروجی:
{}

ری‌استارت کردن برنامه

POST: /v1/apps/{app-name}/restart
  • خروجی:
{}

دیپلوی برنامه

POST: /v1/apps/{app-name}/deployments
  • ورودی:
{
"type": [] // یکی از این تایپ‌‌ها باشد: "integration", "url", "image",
"files": [],
"config": {}
}
  • خروجی:
{
"id": "3084",
"platform": "node",
"image": "registry.fing.ir/app-name:v108-2la9a098m2ks",
"port": "3000",
"started_at": "2022-05-19T08:53:04.000Z",
"finished_at": "2022-05-19T08:56:14.000Z",
"status": "finished",
"url": "",
"created_at": "2022-05-19T08:45:24.000Z"
}

استقرار‌ها

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

لیست استفرار

GET: /v1/apps/{app-name}/deployments
  • خروجی:
[
{
"id": "3084",
"platform": "node",
"image": "registry.fing.ir/app-name:v108-2la9a098m2ks",
"port": "3000",
"started_at": "2022-05-19T08:53:04.000Z",
"finished_at": "2022-05-19T08:56:14.000Z",
"status": "finished",
"url": "https://app-name.onfing.ir",
"created_at": "2022-05-19T08:45:24.000Z"
}
]

لاگ‌های استفرار

GET: /v1/apps/{app-name}/deployments/{deployment-id}
  • خروجی:
{
"deployment": {
"id": "3084",
"platform": "node",
"image": "registry.fing.ir/app-name:v108-2la9a098m2ks",
"port": "3000",
"started_at": "2022-05-19T08:53:04.000Z",
"finished_at": "2022-05-19T08:56:14.000Z",
"status": "finished",
"url": "https://app-name.onfing.ir",
"created_at": "2022-05-19T08:45:24.000Z"
},
"logs": [
{
"id": 108864,
"deployment_id": 3084,
"level": "info",
"message": "# Executing 12 build trigger",
"created_at": "2022-05-19T08:46:14.000Z",
"updated_at": "2022-05-19T08:46:14.000Z"
},
{
"id": 108872,
"deployment_id": 3048,
"level": "info",
"message": "==> Installing packages using 'yarn install'",
"created_at": "2022-05-19T08:49:12.000Z",
"updated_at": "2022-05-19T08:49:12.000Z"
}
]
}

دیسک‌ها

می‌توانید با استفاده از API فینگ به مسیرهای دیسک‌ها دسترسی داشته باشید:

ساخت دیسک‌

POST: /v1/apps/{app-name}/disks
  • ورودی:
{
"name": "disk-name"
}
  • خروجی:
[
{
"id": 8592,
"name": "disk-name",
"destination": "",
"mounted": false,
"used": 4096,
"created_at": "2022-05-19T09:35:22.000Z",
"ftp": {}
}
]

لیست دیسک‌ها

GET: /v1/apps/{app-name}/disks
  • خروجی:
[
{
"id": 8592,
"name": "disk-name",
"destination": "/test/123",
"mounted": false,
"used": 4096,
"created_at": "2022-02-22T10:45:08.000Z",
"ftp": {
"id": 70377,
"disk_id": 8592,
"username": "small_queen_IxLLm",
"password": "password",
"hostname": "ftp.fing.ir",
"port": "2022",
"created_at": "2022-02-25T11:35:18.000Z"
}
}
]

mount کردن دیسک‌

POST: /v1/apps/{app-name}/disks/{disk-id}/mount
  • خروجی:
{}

unmount کردن دیسک‌

POST: /v1/apps/{app-name}/disks/{disk-id}/unmount
  • خروجی:
{}

حذف دیسک‌

POST: /v1/apps/{app-name/disks/{disk-id}
  • خروجی:
{}

پلن‌ها

فینگ API این امکان را می‌دهد که بتوانید لیست پلن‌های موجود در فینگ را مشاهد نمایید.

GET: /v1/plans
  • خروجی:
[
{
"id": 2,
"region": "iran",
"name": "micro",
"cpu": 0.15,
"memory": 0.2,
"storage": 2,
"available": true,
"sort": 2,
"created_at": "2022-01-10T13:40:05.000Z",
"updated_at": "2022-05-11T19:02:39.000Z",
"hint": "مناسب برای برنامه‌های سبک مانند Go",
"hourly_price": 261,
"monthly_price": 190000
},
{
"id": 4,
"region": "iran",
"name": "small",
"cpu": 0.5,
"memory": 1,
"storage": 10,
"available": true,
"sort": 4,
"created_at": "2022-01-10T13:40:05.000Z",
"updated_at": "2022-03-15T13:22:35.000Z",
"hint": "مناسب برنامه‌های نسبتا بزرگ",
"hourly_price": 1096,
"monthly_price": 800000
},
{
"id": 6,
"region": "iran",
"name": "large",
"cpu": 2,
"memory": 4,
"storage": 40,
"available": true,
"sort": 6,
"created_at": "2022-01-10T13:40:05.000Z",
"updated_at": "2022-03-15T13:23:14.000Z",
"hint": "مناسبت همه پلتفورم‌ها",
"hourly_price": 4384,
"monthly_price": 3200000
}
]