شناسهها و دسترسی
پروژه ظرف منابع شماست؛ مسیرهای سرویس معمولاً با /api/v1/project/{project_guid}/ شروع میشوند، اما مسیر مدیریت خود پروژهها /api/v1/projects/ است.
فیلد guid شناسهٔ مورد استفاده در URL است؛ فیلد عددی id را جایگزین آن نکنید.
درخواستها از متغیرهای شروع سریع استفاده میکنند؛ برای دریافت جزئیات پروژه باید عضو آن باشید و برای تغییر نام یا حذف، مالک پروژه باشید.
فهرست و جزئیات
curl --fail-with-body --silent --show-error \
"$ABRBIT_API/api/v1/projects/" \
--header "Authorization: Bearer $ABRBIT_TOKEN"
curl --fail-with-body --silent --show-error \
"$ABRBIT_API/api/v1/projects/$ABRBIT_PROJECT/" \
--header "Authorization: Bearer $ABRBIT_TOKEN"
فهرست با پوشش objects و meta و جزئیات بهصورت شیء مستقیم برمیگردد؛ فیلد role در اعضای فهرست نقش کاربر را نشان میدهد.
فهرست پروژهها صفحهبندی ندارد؛ مقدار meta.count در این مسیر شمارندهٔ کل پروژهها نیست.
ساخت پروژه
این درخواست یک پروژهٔ جدید میسازد؛ ایجاد پروژه بهتنهایی به معنی ساخت سرور یا باکت نیست.
curl --fail-with-body --silent --show-error \
"$ABRBIT_API/api/v1/projects/" \
--header "Authorization: Bearer $ABRBIT_TOKEN" \
--header 'Content-Type: application/json' \
--data '{"name":"پروژهٔ آزمایش API"}'
پاسخ موفق با وضعیت 201 خود شیء پروژه است؛ مقدار guid را برای درخواستهای بعدی بردارید و برای پروژهٔ جدید یک توکن همان پروژه بسازید.
تغییر نام
curl --fail-with-body --silent --show-error --request PUT \
"$ABRBIT_API/api/v1/projects/$ABRBIT_PROJECT/" \
--header "Authorization: Bearer $ABRBIT_TOKEN" \
--header 'Content-Type: application/json' \
--data '{"name":"نام جدید پروژه"}'
پاسخ موفق با وضعیت 200 شیء پروژه است؛ نام جدید باید غیرخالی باشد و شناسهٔ پروژه با تغییر نام عوض نمیشود.
حذف پروژهٔ خالی
توجه: این درخواست پروژه را حذف و توکنهای آن را باطل میکند؛ فقط برای پروژهٔ آزمایشی خودتان اجرا کنید.
curl --fail-with-body --silent --show-error --request DELETE \
"$ABRBIT_API/api/v1/projects/$ABRBIT_PROJECT/" \
--header "Authorization: Bearer $ABRBIT_TOKEN"
پاسخ موفق با وضعیت 200 رشتهٔ JSON برابر "deleted" است؛ اگر منابع یا عملیات وابسته باقی مانده باشند، پاسخ 409 شامل message و فهرست blockers خواهد بود.
برای رفع تعارض، منابع اعلامشده را از مسیر سرویس مربوط مدیریت کنید؛ درخواست حذف پروژه آن منابع را بهصورت خودکار پاک نمیکند.
نمونهٔ زیر توضیحی است و تعداد منابع واقعی شما را نشان نمیدهد.
{"message":"ابتدا منابع و عملیات باقیمانده پروژه را حذف یا تکمیل کنید.","blockers":[{"service":"s3","count":1}]}