Semver API

Phân tích, kiểm tra phiên bản theo Semantic Versioning, so sánh, kiểm tra range kiểu npm (^, ~, x, ||), sắp xếp danh sách và tính phiên bản major / minor / patch / pre-release tiếp theo.

GETPOSThttps://apibox.io.vn/v1/semver
Tiện ích lập trình▶ Dùng thử online

API semver áp dụng đúng quy tắc của thư viện semver của npm, bản cài đặt tham chiếu của Semantic Versioning 2.0.0. Với version, API phân tích phiên bản (major, minor, patch, phần pre-release và build), so sánh với compare= (thấp hơn / cao hơn / bằng và khác ở phần nào), kiểm tra với range như ^1.2.0, ~3.4, >=2 <3, 1.x || 2.x hay 1.2.3 - 2.0.0, và liệt kê phiên bản tiếp theo cho mọi kiểu phát hành.

Với versions (mảng hoặc danh sách phân cách bằng dấu phẩy), API sắp xếp, báo các mục không hợp lệ, trả về phiên bản mới nhất và mới nhất ổn định, và khi có range thì liệt kê các phiên bản thoả mãn cùng phiên bản cao nhất, thấp nhất khớp, đúng cách trình quản lý gói chọn phiên bản.

coerce=true chuyển các chuỗi lỏng như v2, 1.2 hay release-3.4.1 thành phiên bản hợp lệ; bản pre-release chỉ khớp với range có nhắc tới chúng, trừ khi include_prerelease=true.

Tham số

TênVị tríKiểuBắt buộcMặc định
versionquery|bodystringkhôngPhiên bản cần phân tích.
comparequery|bodystringkhôngPhiên bản khác để so sánh.
rangequery|bodystringkhôngRange kiểu npm, ví dụ ^1.2.0.
versionsquery|bodystringkhôngDanh sách cần sắp xếp / lọc (mảng hoặc phân cách bằng dấu phẩy).
bumpquery|bodystringkhôngmajor, minor, patch, premajor, preminor, prepatch, prerelease.
coercequery|bodybooleankhôngfalseChấp nhận chuỗi lỏng (v2, 1.2).
include_prereleasequery|bodybooleankhôngfalseCho range khớp cả pre-release.

Ví dụ

curl "https://apibox.io.vn/v1/semver?versions=1.0.0,2.0.0-rc.1,1.10.0,1.2.0&range=>=1.2 <2" \
  -H "Authorization: Bearer YOUR_API_KEY"

Kết quả trả về

{
  "count": 4,
  "sorted": [
    "1.0.0",
    "1.2.0",
    "1.10.0",
    "2.0.0-rc.1"
  ],
  "invalid": [],
  "latest": "2.0.0-rc.1",
  "latest_stable": "1.10.0",
  "range": ">=1.2 <2",
  "normalized_range": ">=1.2.0 <2.0.0-0",
  "satisfying": [
    "1.10.0",
    "1.2.0"
  ],
  "max_satisfying": "1.10.0",
  "min_satisfying": "1.2.0"
}

Ứng dụng

  • Kiểm tra cập nhật trong ứng dụng, CLI
  • Tự động hoá phát hành: tính phiên bản tiếp theo
  • Dashboard dependency: phiên bản nào thoả range
  • Sắp xếp tag, bản phát hành đúng thứ tự (1.10 sau 1.9)

Hỏi đáp

^1.2.3 cho phép những phiên bản nào?

Mọi phiên bản >=1.2.3 và <2.0.0. Với 0.x thì chặt hơn: ^0.2.3 nghĩa là >=0.2.3 <0.3.0.

Vì sao 2.0.0-rc.1 không thoả >=1.0.0?

Theo quy tắc npm, pre-release chỉ khớp với điều kiện có pre-release trên cùng phiên bản. Dùng include_prerelease=true để tính cả chúng.

Vì sao 1.10.0 đứng sau 1.9.0?

Mỗi phần được so sánh như số, khác với sắp xếp chuỗi thông thường.

API liên quan

Bắt đầu với 1.000 request miễn phí mỗi tháng. Nhận API key miễn phí →