الحزم
حزم UPack: التسجيل، والسرد، والإصدارات، والتنزيل بالاسم أو الإصدار أو نطاق الإصدارات.
عمليات هذه المجموعة مع قاعدة الوصول وقاعدة إعادة المحاولة والمعلمات والاستجابات. يحمل كل طلب مفتاحًا: Authorization: Bearer <key> (راجع «المصادقة»).
العمليات
عرض قائمة إصدارات الحزم
GET HEAD /api/v1/repositories/{repository}/packages
الوصول: إذن المستودع: package.read; مفاتيح الملفات: read · إعادة المحاولة: آمن للتكرار (قراءة)
يسرد إصدارات UPack المسجّلة مع ملفات بياناتها (manifests)، بعد التصفية حسب group وname (مطابقة تامة دون مراعاة حالة الأحرف؛ group= بقيمة فارغة يحدد المجموعة الجذرية، وحذفه يحدد كل المجموعات). وتشكّل النتيجة كل من sort (group أو name أو version) وdirection (asc أو desc) وgroupBy (none أو group أو package، وهذا الأخير يضيف groups تسرد artifactIds الخاصة بالصفحة). تحتوي الصفحة على limit عنصرًا (من 1 إلى 100، والافتراضي 50)؛ وللمتابعة اضبط after على قيمة next مع المرشحات نفسها. الصفحات ليست لقطة ثابتة: قد تفوتك إصدارات سُجّلت في الأثناء حتى المرور التالي.
المعلمات
| الاسم | الموضع | النوع | مطلوب | القواعد |
|---|---|---|---|---|
repository | المسار | string | نعم | يطابق النمط ^[a-z0-9][a-z0-9_-]{0,63}$ |
group | الاستعلام | string | لا | — |
name | الاستعلام | string | لا | — |
sort | الاستعلام | string | لا | إحدى القيم: group, name, version |
direction | الاستعلام | string | لا | إحدى القيم: asc, desc |
groupBy | الاستعلام | string | لا | إحدى القيم: none, group, package |
after | الاستعلام | string | لا | — |
limit | الاستعلام | integer | لا | 1–100 |
الاستجابة 200
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
items | مصفوفة من object | نعم | — |
items[].group | string | لا | — |
items[].name | string | لا | — |
items[].version | string | لا | — |
items[].artifactId | string (uuid) | لا | — |
items[].manifest | object | لا | — |
next | string | نعم | يمكن أن يكون null |
groups | مصفوفة من object | نعم | — |
groups[].group | string | نعم | — |
groups[].name | string | نعم | يمكن أن يكون null |
groups[].artifactIds | مصفوفة من string (uuid) | نعم | — |
الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507
مثال
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/packages" \
-H "Authorization: Bearer $ARKVORY_TOKEN"تنزيل حزمة بالاسم والإصدار
GET HEAD /api/v1/repositories/{repository}/packages/content
الوصول: إذن المستودع: content.read; مفاتيح الملفات: read · إعادة المحاولة: آمن للتكرار (قراءة)
يحدد name (في group، والمجموعة الجذرية افتراضيًا) إصدارًا مسجّلًا واحدًا ويبثّه كما يفعل downloadArtifact؛ ويبيّن X-Arkvory-Artifact-Id وX-Arkvory-Package-Version الاختيار. يتم الاختيار بـ version مطابق تمامًا أو بنطاق SemVer range (مثل ^1.4 أو >=1.0.0 <2.0.0)، ويمكن اختيار الإصدارات ذات stage فقط؛ وبدون أيٍّ منهما يؤخذ أعلى إصدار مستقر، وprerelease=true يسمح بإصدارات ما قبل الإصدار النهائي، وorder=promoted يأخذ الإصدار الذي مُنح stage أحدث مرة. يُحدَّد الاسم في كل طلب، لذا استأنف باستخدام If-Range مضبوطًا على ETag المُعاد، أو نزّل بمعرّف المُخرَج؛ ويعطي resolvePackage الاختيار نفسه دون البايتات.
المعلمات
| الاسم | الموضع | النوع | مطلوب | القواعد |
|---|---|---|---|---|
repository | المسار | string | نعم | يطابق النمط ^[a-z0-9][a-z0-9_-]{0,63}$ |
Range | الترويسة | string | لا | Single bytes range; multi-range is unsupported. HEAD ignores Range. |
If-Range | الترويسة | string | لا | Exact strong ETag; a mismatch causes a full response. |
If-None-Match | الترويسة | string | لا | Matching ETag returns 304, including HEAD. |
Arkvory-Download-Id | الترويسة | string | لا | يطابق النمط ^[A-Za-z0-9_-]{16,64}$; The client own id of one download, the same on every range of it: the queue keys the session by it instead of the client address, answers a waiting request at once with 503 download_queued, and may ask it to yield its place at a range boundary. Without it, a waiting request is held until its turn for a bounded time. |
Arkvory-Queue-Ticket | الترويسة | string | لا | عدد الأحرف: 80 كحد أقصى; The last Arkvory-Queue-Ticket the server sent for this download: after a server restart the download takes its old turn. A ticket that is wrong, expired or of another download is ignored. |
Arkvory-Download-Class | الترويسة | string | لا | إحدى القيم: interactive, release, bulk, background; Queue class of the download. Only a class lower than the caller own one applies (people: interactive, services and links: release); an unknown value is 400. The response names the class applied. |
group | الاستعلام | string | لا | عدد الأحرف: 128 كحد أقصى |
name | الاستعلام | string | نعم | عدد الأحرف: 1–128 |
version | الاستعلام | string | لا | عدد الأحرف: 128 كحد أقصى; Exact version; excludes range. |
range | الاستعلام | string | لا | عدد الأحرف: 256 كحد أقصى; SemVer range: 1.2.3, ^1.2, ~1.2.3, 1.x, >=1.0.0 <2.0.0, a || b. |
stage | الاستعلام | string | لا | يطابق النمط ^[a-z0-9][a-z0-9_.-]{0,31}$; Only versions promoted to this stage. |
prerelease | الاستعلام | string | لا | إحدى القيم: true, false; Include prereleases. |
order | الاستعلام | string | لا | إحدى القيم: version, promoted; promoted picks the most recently staged version and requires stage. |
الاستجابات: 200, 206, 304, 400, 401, 403, 404, 409, 416, 422, 503, 507
مثال
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/packages/content?name=$NAME" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-o file