This document lists examples to solve common tasks with a REST Product Discovery API. For more technical details, please refer to the Product Discovery OpenApi (Swagger) specification:
BellSoft Product Discovery REST API allows users to discover and query for BellSoft products (specifically, Liberica JDK) download URLs, versions, architectures and features programmatically.
The BellSoft Product Discovery API offers several methods to discover which architectures and systems are supported and view them as a list.
URL: https://api.bell-sw.com/v1/liberica/architectures
JSON response example:["arm", "ppc", "sparc", "x86"]
curl https://api.bell-sw.com/v1/liberica/architectures
Invoke-RestMethod https://api.bell-sw.com/v1/liberica/architectures
URL: https://api.bell-sw.com/v1/liberica/operating-systems
JSON response example:["linux", "linux-musl", "macos", "solaris", "windows"]
curl https://api.bell-sw.com/v1/liberica/operating-systems
Invoke-RestMethod https://api.bell-sw.com/v1/liberica/operating-systems
In this example, we assume that the user knows all user-specific options: bitness, os, etc. So the list of releases will be very short.
JSON response example:
[
{
"bitness": 64,
"buildVersion": 10,
"latestLTS": false,
"os": "windows",
"updateVersion": 1,
"downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/13.0.1+10/bellsoft-jdk13.0.1+10-windows-amd64.zip",
"interimVersion": 0,
"EOL": false,
"latestInFeatureVersion": true,
"LTS": false,
"bundleType": "jdk",
"version": "13.0.1+10",
"featureVersion": 13,
"packageType": "zip",
"sha1": "a2143878d68f67e4cd079d52365b415451c4bf15",
"FX": true,
"filename": "bellsoft-jdk13.0.1+10-windows-amd64.zip",
"installationType": "archive",
"size": 275301289,
"patchVersion": 0,
"GA": true,
"architecture": "x86",
"latest": true
}
]
curl https://api.bell-sw.com/v1/liberica/releases?version-modifier=latest&bitness=64&os=windows&arch=x86&package-type=zip&bundle-type=jdk
Invoke-RestMethod https://api.bell-sw.com/v1/liberica/releases?version-modifier=latest&bitness=64&os=windows&arch=x86&package-type=zip&bundle-type=jdk
As in the previous example, we will limit the output using additional user-specific filters.
JSON response example:
[
{
"bitness": 64,
"buildVersion": 11,
"latestLTS": true,
"os": "windows",
"updateVersion": 5,
"downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.5+11/bellsoft-jdk11.0.5+11-windows-amd64.zip",
"interimVersion": 0,
"EOL": false,
"latestInFeatureVersion": true,
"LTS": true,
"bundleType": "jdk",
"version": "11.0.5+11",
"featureVersion": 11,
"packageType": "zip",
"sha1": "9956658bdc98f844bacbf451b8e8f0622544b539",
"FX": true,
"filename": "bellsoft-jdk11.0.5+11-windows-amd64.zip",
"installationType": "archive",
"size": 265347010,
"patchVersion": 0,
"GA": true,
"architecture": "x86",
"latest": false
}
]
curl https://api.bell-sw.com/v1/liberica/releases?version-modifier=latest&bitness=64&release-type=lts&os=windows&arch=x86&package-type=zip&bundle-type=jdk
Invoke-RestMethod https://api.bell-sw.com/v1/liberica/releases?version-modifier=latest&bitness=64&release-type=lts&os=windows&arch=x86&package-type=zip&bundle-type=jdk
In this example, we assume that the user knows the name of the previously downloaded file. It is possible to verify that the Liberica JDK release in question is the latest feature, LTS, or generally the latest one.
URL: https://api.bell-sw.com/v1/liberica/releases/bellsoft-jdk11.0.5+11-windows-amd64.zip
JSON response example:
{
"bitness": 64,
"buildVersion": 11,
"latestLTS": true,
"os": "windows",
"updateVersion": 5,
"downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.5+11/bellsoft-jdk11.0.5+11-windows-amd64.zip",
"interimVersion": 0,
"EOL": false,
"latestInFeatureVersion": true,
"LTS": true,
"bundleType": "jdk",
"version": "11.0.5+11",
"featureVersion": 11,
"packageType": "zip",
"sha1": "9956658bdc98f844bacbf451b8e8f0622544b539",
"FX": true,
"filename": "bellsoft-jdk11.0.5+11-windows-amd64.zip",
"installationType": "archive",
"size": 265347010,
"patchVersion": 0,
"GA": true,
"architecture": "x86",
"latest": false
}
curl https://api.bell-sw.com/v1/liberica/releases/bellsoft-jdk11.0.5+11-windows-amd64.zip
Invoke-RestMethod https://api.bell-sw.com/v1/liberica/releases/bellsoft-jdk11.0.5+11-windows-amd64.zip
This example assumes that the user knows the version string of the previously downloaded Liberica JDK release. It is possible to check the flags similar to the previous section.
JSON response example:
[
{
"bitness": 64,
"buildVersion": 11,
"latestLTS": true,
"os": "windows",
"updateVersion": 5,
"downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.5+11/bellsoft-jdk11.0.5+11-windows-amd64.zip",
"interimVersion": 0,
"EOL": false,
"latestInFeatureVersion": true,
"LTS": true,
"bundleType": "jdk",
"version": "11.0.5+11",
"featureVersion": 11,
"packageType": "zip",
"sha1": "9956658bdc98f844bacbf451b8e8f0622544b539",
"FX": true,
"filename": "bellsoft-jdk11.0.5+11-windows-amd64.zip",
"installationType": "archive",
"size": 265347010,
"patchVersion": 0,
"GA": true,
"architecture": "x86",
"latest": false
}
]
curl https://api.bell-sw.com/v1/liberica/releases?version=11.0.5+11&bitness=64&os=windows&arch=x86&package-type=zip&bundle-type=jdk
Invoke-RestMethod https://api.bell-sw.com/v1/liberica/releases?version=11.0.5+11&bitness=64&os=windows&arch=x86&package-type=zip&bundle-type=jdk
This example shows how to discover a link for downloading without parsing JSON.
Response example:
https://github.com/bell-sw/Liberica/releases/download/11.0.5+11/bellsoft-jdk11.0.5+11-windows-amd64.zip
curl https://api.bell-sw.com/v1/liberica/releases?version=11.0.5%2B11&bitness=64&os=windows&arch=x86&package-type=zip&bundle-type=jdk&output=text&fields=downloadUrl
Invoke-RestMethod https://api.bell-sw.com/v1/liberica/releases?version=11.0.5%2B11&bitness=64&os=windows&arch=x86&package-type=zip&bundle-type=jdk&output=text&fields=downloadUrl
This section describes using a REST Native Image Kit (NIK) API,
which is almost in all cases similar to the BellSoft Product Discovery API above.
However, dealing with Native Image Kit components is specific in its own way.
Liberica Native Image Kit contains several sets of base components,
where each includes different nested components (embedded or
installable).
These sets differ by versions, operating systems, and processor architectures.
The base component is a nik component.
Any other components are nested components.
Some of them — liberica, nodejs — are embedded components.
The rest — llvm, ni, python, r, ruby, wasm —
are installable (i.e. not embedded) components.
URL: https://api.bell-sw.com/v1/nik/components
JSON response example (alphabetical order):["liberica","llvm","ni","nik","nodejs","python","r","ruby","wasm"]
curl https://api.bell-sw.com/v1/nik/components
Invoke-RestMethod https://api.bell-sw.com/v1/nik/components
Liberica Native Image Kit contains several bundle types.
URL: https://api.bell-sw.com/v1/nik/bundle-types
JSON response example (alphabetical order):["core","standard"]
curl https://api.bell-sw.com/v1/nik/bundle-types
Invoke-RestMethod https://api.bell-sw.com/v1/nik/bundle-types
Since the result JSON response, presented as the JSON array, is massive for the general URL, the only item returned is the first one (the first base NIK component with all its nested NIK components).
URL: https://api.bell-sw.com/v1/nik/releases
JSON response example:
[
{
"bitness": 64,
"extraVersion": 2,
"EOL": false,
"latestLTS": true,
"os": "macos",
"latestInAnnualVersion": true,
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-macos-amd64.zip",
"LTS": true,
"packageType": "zip",
"featureVersion": 0,
"version": "21.0.0.2",
"releaseCatalogUrl": "https://download.bell-sw.com/vm/release-catalog-java11.properties",
"sha1": "49948207b6d414ec09cfa069ccfb920cac4af436",
"component": "nik",
"filename": "bellsoft-liberica-vm-openjdk11-21.0.0.2-macos-amd64.zip",
"annualVersion": 21,
"installationType": "archive",
"size": 459490970,
"patchVersion": 0,
"GA": true,
"architecture": "x86",
"latest": true,
"components": [
{
"embedded": true,
"component": "liberica"
},
{
"embedded": true,
"component": "nodejs"
},
{
"sha1": "3f65fd40fea70b32b240d7f319151aa87dd6af07",
"component": "llvm",
"filename": "llvm-toolchain-installable-openjdk11-21.0.0.2-macos-amd64.jar",
"size": 113000219,
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/llvm-toolchain-installable-openjdk11-21.0.0.2-macos-amd64.jar",
"packageType": "jar",
"embedded": false
},
{
"sha1": "52419f5ef3739f3fc3902acda4551f3645fc223f",
"component": "python",
"filename": "python-installable-openjdk11-21.0.0.2-macos-amd64.jar",
"size": 429456984,
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/python-installable-openjdk11-21.0.0.2-macos-amd64.jar",
"packageType": "jar",
"embedded": false
},
{
"sha1": "72ac9dc0ef5106179bbbc2a57ecb90527370217c",
"component": "ni",
"filename": "native-image-installable-openjdk11-21.0.0.2-macos-amd64.jar",
"size": 40061425,
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/native-image-installable-openjdk11-21.0.0.2-macos-amd64.jar",
"packageType": "jar",
"embedded": false
},
{
"sha1": "59942ef3030187f75cb928ab89fd8a984cc0baf4",
"component": "ruby",
"filename": "ruby-installable-openjdk11-21.0.0.2-macos-amd64.jar",
"size": 51743490,
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/ruby-installable-openjdk11-21.0.0.2-macos-amd64.jar",
"packageType": "jar",
"embedded": false
},
{
"sha1": "69172d29b1c84436ca5ffc2806e85d8795b2de1a",
"component": "r",
"filename": "r-installable-openjdk11-21.0.0.2-macos-amd64.jar",
"size": 355164665,
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/r-installable-openjdk11-21.0.0.2-macos-amd64.jar",
"packageType": "jar",
"embedded": false
},
{
"sha1": "ab43f0e1b6dc67e364fe03cb53db6ac4ec27cdaf",
"component": "wasm",
"filename": "wasm-installable-openjdk11-21.0.0.2-macos-amd64.jar",
"size": 33091667,
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/wasm-installable-openjdk11-21.0.0.2-macos-amd64.jar",
"packageType": "jar",
"embedded": false
}
]
},
...
]
curl https://api.bell-sw.com/v1/nik/releases
Invoke-RestMethod https://api.bell-sw.com/v1/nik/releases
In this example, the fields=component,downloadUrl,components request parameter
is used so that the JSON response includes just the set of the mentioned fields.
The fields request parameter does not filter the components
included in the result JSON response but only defines which properties
of the components will appear in the JSON response.
Important note.
The fields request parameter has to include the components value
if you want the nested NIK components to be included in the result JSON response.
Otherwise, the JSON response will contain only the base NIK components.
The nested NIK component liberica is embedded and thus has no
downloadUrl field.
The arch=x86 request filter (request parameter) is applied to the URL
to limit the JSON response length.
URL: https://api.bell-sw.com/v1/nik/releases?fields=component,downloadUrl,components&arch=x86
JSON response example:
[
{
"components": [
{
"component": "liberica"
},
{
"component": "ni",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/native-image-installable-openjdk11-21.0.0.2-linux-x64-musl.jar"
},
{
"component": "ruby",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/ruby-installable-openjdk11-21.0.0.2-linux-x64-musl.jar"
},
{
"component": "r",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/r-installable-openjdk11-21.0.0.2-linux-x64-musl.jar"
},
{
"component": "wasm",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/wasm-installable-openjdk11-21.0.0.2-linux-x64-musl.jar"
},
{
"component": "llvm",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/llvm-toolchain-installable-openjdk11-21.0.0.2-linux-x64-musl.jar"
},
{
"component": "python",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/python-installable-openjdk11-21.0.0.2-linux-x64-musl.jar"
}
],
"component": "nik",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-x64-musl.tar.gz"
},
{
"components": [
{
"component": "liberica"
},
{
"component": "ruby",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/ruby-installable-openjdk11-21.0.0.2-linux-amd64.jar"
},
{
"component": "r",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/r-installable-openjdk11-21.0.0.2-linux-amd64.jar"
},
{
"component": "wasm",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/wasm-installable-openjdk11-21.0.0.2-linux-amd64.jar"
},
{
"component": "llvm",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/llvm-toolchain-installable-openjdk11-21.0.0.2-linux-amd64.jar"
},
{
"component": "python",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/python-installable-openjdk11-21.0.0.2-linux-amd64.jar"
},
{
"component": "ni",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/native-image-installable-openjdk11-21.0.0.2-linux-amd64.jar"
}
],
"component": "nik",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-amd64.tar.gz"
},
{
"components": [
{
"component": "liberica"
},
{
"component": "llvm",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/llvm-toolchain-installable-openjdk11-21.0.0.2-macos-amd64.jar"
},
{
"component": "python",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/python-installable-openjdk11-21.0.0.2-macos-amd64.jar"
},
{
"component": "ni",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/native-image-installable-openjdk11-21.0.0.2-macos-amd64.jar"
},
{
"component": "ruby",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/ruby-installable-openjdk11-21.0.0.2-macos-amd64.jar"
},
{
"component": "r",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/r-installable-openjdk11-21.0.0.2-macos-amd64.jar"
},
{
"component": "wasm",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/wasm-installable-openjdk11-21.0.0.2-macos-amd64.jar"
}
],
"component": "nik",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-macos-amd64.zip"
}
]
curl https://api.bell-sw.com/v1/nik/releases?fields=component,downloadUrl,components&arch=x86
Invoke-RestMethod https://api.bell-sw.com/v1/nik/releases?fields=component,downloadUrl,components&arch=x86
If the components value is not included
into the fields request parameter, the JSON response will return no
installable or embedded NIK components because the components
property of each base NIK component will be ignored.
Important note.
The JSON response is not filtered by any request parameters and thus includes the
base NIK components and a special additional one: src.tar.gz.
This src.tar.gz NIK component is neither base nor
installable/embedded. In this sense, we can say
it is an unknown NIK component since it has no component property.
URL: https://api.bell-sw.com/v1/nik/releases?fields=component,downloadUrl
JSON response example:
[
{
"component": "nik",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-aarch64.tar.gz"
},
{
"component": "nik",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-x64-musl.tar.gz"
},
{
"component": "nik",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-amd64.tar.gz"
},
{
"component": "nik",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-aarch64-musl.tar.gz"
},
{
"component": "nik",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-macos-amd64.zip"
},
{
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-src.tar.gz"
}
]
curl https://api.bell-sw.com/v1/nik/releases?fields=component,downloadUrl
Invoke-RestMethod https://api.bell-sw.com/v1/nik/releases?fields=component,downloadUrl
It is recommended to use the package-type=src.tar.gz request parameter to receive the required set of the src.tar.gz NIK components.
URL:
https://api.bell-sw.com/v1/nik/releases?package-type=src.tar.gz&version=21.0.0.2
https://api.bell-sw.com/v1/nik/releases?package-type=src.tar.gz&version-modifier=latest
[
{
"sha1": "e0445658667c59d214d7f8893715bd9c8d3ce1e7",
"filename": "bellsoft-liberica-vm-openjdk11-21.0.0.2-src.tar.gz",
"size": 275662456,
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-src.tar.gz",
"packageType": "src.tar.gz"
}
]
curl https://api.bell-sw.com/v1/nik/releases?package-type=src.tar.gz&version=21.0.0.2
curl https://api.bell-sw.com/v1/nik/releases?package-type=src.tar.gz&version-modifier=latest
Invoke-RestMethod https://api.bell-sw.com/v1/nik/releases?package-type=src.tar.gz&version=21.0.0.2
Invoke-RestMethod https://api.bell-sw.com/v1/nik/releases?package-type=src.tar.gz&version-modifier=latest
You can search for any required component, but in our example, we will find the latest version of Liberica NIK with JDK 11 inside.
The query is a combination of two parameters: version-modifier=latest and component-version=component_name@component_major_version.
In our example, the component_name is "liberica" and component_major_version is 11.
It is possible to use multiple component-version parameters to find the latest Liberica NIK
versions for multiple JDK versions.
URL:
https://api.bell-sw.com/v1/nik/releases?arch=x86&bitness=64&bundle-type=core&os=linux&package-type=tar.gz&version-modifier=latest&component-version=liberica@11
https://api.bell-sw.com/v1/nik/releases?arch=x86&bitness=64&bundle-type=core&os=linux&package-type=tar.gz&version-modifier=latest&component-version=liberica@11&component-version=liberica@17
[
{
"bitness": 64,
"extraVersion": 0,
"components": [
{
"version": "11.0.20+8",
"embedded": true,
"component": "liberica"
}
],
"EOL": false,
"latestLTS": false,
"os": "linux",
"latestInAnnualVersion": true,
"downloadUrl": "https://download.bell-sw.com/vm/22.3.3/bellsoft-liberica-vm-core-openjdk11.0.20+8-22.3.3+1-linux-amd64.tar.gz",
"LTS": true,
"bundleType": "core",
"packageType": "tar.gz",
"featureVersion": 3,
"version": "22.3.3+1",
"releaseCatalogUrl": "",
"sha1": "6c478fcf1c51a38e1cc232737b73420219a41255",
"component": "nik",
"filename": "bellsoft-liberica-vm-core-openjdk11.0.20+8-22.3.3+1-linux-amd64.tar.gz",
"annualVersion": 22,
"installationType": "archive",
"size": 264056861,
"patchVersion": 3,
"GA": true,
"architecture": "x86",
"latest": false
}
]
curl https://api.bell-sw.com/v1/nik/releases?arch=x86&bitness=64&bundle-type=core&os=linux&package-type=tar.gz&version-modifier=latest&component-version=liberica@11
curl https://api.bell-sw.com/v1/nik/releases?arch=x86&bitness=64&bundle-type=core&os=linux&package-type=tar.gz&version-modifier=latest&component-version=liberica@1111&component-version=liberica@17
Invoke-RestMethod https://api.bell-sw.com/v1/nik/releases?arch=x86&bitness=64&bundle-type=core&os=linux&package-type=tar.gz&version-modifier=latest&component-version=liberica@11
Invoke-RestMethod https://api.bell-sw.com/v1/nik/releases?arch=x86&bitness=64&bundle-type=core&os=linux&package-type=tar.gz&version-modifier=latest&component-version=liberica@11&component-version=liberica@17
In this example, we use the components=nik request parameter
to have only the base NIK components in the JSON response.
Important note.
The fields request parameter includes the components value
(see URL below). The components property arrays are also shown.
However, all these arrays of the nested NIK components are empty
because the used components=nik request filter rejects any nested
NIK component. Thus, no nested NIK components are included in
the JSON response.
If the fields request parameter does not include the
components value, the JSON response will not show any
appropriate components property array at all.
URL: https://api.bell-sw.com/v1/nik/releases?components=nik&fields=component,downloadUrl,components
JSON response example:
[
{
"components": [],
"component": "nik",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-aarch64.tar.gz"
},
{
"components": [],
"component": "nik",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-x64-musl.tar.gz"
},
{
"components": [],
"component": "nik",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-amd64.tar.gz"
},
{
"components": [],
"component": "nik",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-aarch64-musl.tar.gz"
},
{
"components": [],
"component": "nik",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-macos-amd64.zip"
}
]
curl https://api.bell-sw.com/v1/nik/releases?components=nik&fields=component,downloadUrl,components
Invoke-RestMethod https://api.bell-sw.com/v1/nik/releases?components=nik&fields=component,downloadUrl,components
In this example, we use the components=nik,ruby,python request parameter
to have the base NIK component together with some of its nested
NIK components in the JSON response.
If any base NIK component does not contain the mentioned nested NIK components,
its components property shows in the JSON response as an empty array.
Important note.
If the components request parameter includes any nested NIK component,
the fields request parameter will include the components value
implicitly as its last value.
Please, compare the two URLs below: they both will return the same result.
URL:
https://api.bell-sw.com/v1/nik/releases?components=nik,ruby,python&fields=component,downloadUrl
https://api.bell-sw.com/v1/nik/releases?components=nik,ruby,python&fields=component,downloadUrl,components
[
{
"components": [],
"component": "nik",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-aarch64.tar.gz"
},
{
"components": [
{
"component": "ruby",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/ruby-installable-openjdk11-21.0.0.2-linux-x64-musl.jar"
},
{
"component": "python",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/python-installable-openjdk11-21.0.0.2-linux-x64-musl.jar"
}
],
"component": "nik",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-x64-musl.tar.gz"
},
{
"components": [
{
"component": "ruby",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/ruby-installable-openjdk11-21.0.0.2-linux-amd64.jar"
},
{
"component": "python",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/python-installable-openjdk11-21.0.0.2-linux-amd64.jar"
}
],
"component": "nik",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-amd64.tar.gz"
},
{
"components": [],
"component": "nik",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-aarch64-musl.tar.gz"
},
{
"components": [
{
"component": "python",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/python-installable-openjdk11-21.0.0.2-macos-amd64.jar"
},
{
"component": "ruby",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/ruby-installable-openjdk11-21.0.0.2-macos-amd64.jar"
}
],
"component": "nik",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-macos-amd64.zip"
}
]
curl https://api.bell-sw.com/v1/nik/releases?components=nik,ruby,python&fields=component,downloadUrl
curl https://api.bell-sw.com/v1/nik/releases?components=nik,ruby,python&fields=component,downloadUrl,components
Invoke-RestMethod https://api.bell-sw.com/v1/nik/releases?components=nik,ruby,python&fields=component,downloadUrl
Invoke-RestMethod https://api.bell-sw.com/v1/nik/releases?components=nik,ruby,python&fields=component,downloadUrl,components
In this example, we use the [email protected]+9 and
[email protected]+9 request parameters to have only
the base NIK components that contain the nested liberica
NIK component with the required version in the JSON response.
The required nested NIK component and its version have to be defined
as the value of the component-version request parameter in the following format
(consisting of two parts with @ as a delimiter character):
nested-component@nested-component-version
The base NIK component will be included in the result JSON response if:
[
{
"components": [
{
"component": "liberica",
"version": "11.0.10+9"
}
],
"component": "nik",
"filename": "bellsoft-liberica-vm-openjdk11-21.0.0.2-macos-amd64.zip",
"version": "21.0.0.2"
}
]
curl https://api.bell-sw.com/v1/nik/[email protected]+9&components=nik,liberica&fields=component,filename,version,components&bundle-type=standard&os=macos">https://api.bell-sw.com/v1/nik/[email protected]+9&components=nik,liberica&fields=component,filename,version,components&bundle-type=standard&os=macos
Invoke-RestMethod https://api.bell-sw.com/v1/nik/[email protected]+9&components=nik,liberica&fields=component,filename,version,components&bundle-type=standard&os=macos">https://api.bell-sw.com/v1/nik/[email protected]+9&components=nik,liberica&fields=component,filename,version,components&bundle-type=standard&os=macos
[
{
"components": [
{
"component": "liberica",
"version": "11.0.11+9"
}
],
"component": "nik",
"filename": "bellsoft-liberica-vm-openjdk11-21.1.0-macos-amd64.dmg",
"version": "21.1.0"
},
{
"components": [
{
"component": "liberica",
"version": "11.0.11+9"
}
],
"component": "nik",
"filename": "bellsoft-liberica-vm-openjdk11-21.1.0-macos-amd64.pkg",
"version": "21.1.0"
},
{
"components": [
{
"component": "liberica",
"version": "11.0.11+9"
}
],
"component": "nik",
"filename": "bellsoft-liberica-vm-openjdk11-21.1.0-macos-amd64.zip",
"version": "21.1.0"
}
]
curl https://api.bell-sw.com/v1/nik/[email protected]+9&components=nik,liberica&fields=component,filename,version,components&bundle-type=standard&os=macos">https://api.bell-sw.com/v1/nik/[email protected]+9&components=nik,liberica&fields=component,filename,version,components&bundle-type=standard&os=macos
Invoke-RestMethod https://api.bell-sw.com/v1/nik/[email protected]+9&components=nik,liberica&fields=component,filename,version,components&bundle-type=standard&os=macos">https://api.bell-sw.com/v1/nik/[email protected]+9&components=nik,liberica&fields=component,filename,version,components&bundle-type=standard&os=macos
In this example, we use the components=ruby,python request parameter
to have only the nested NIK components in the JSON response.
In this case, no property of the parent base NIK components will be included
in the JSON response, except for the components property array.
And if certain base NIK components do not contain the aforementioned nested
NIK components, these base NIK components will certainly be excluded
from the JSON response.
Important note.
If the components request parameter includes any nested NIK component,
the fields request parameter will include the components value
implicitly as its last value.
Please, compare the two URLs below: they both will return the same result.
URL:
https://api.bell-sw.com/v1/nik/releases?components=ruby,python&fields=component,downloadUrl
https://api.bell-sw.com/v1/nik/releases?components=ruby,python&fields=component,downloadUrl,components
[
{
"components": [
{
"component": "ruby",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/ruby-installable-openjdk11-21.0.0.2-linux-x64-musl.jar"
},
{
"component": "python",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/python-installable-openjdk11-21.0.0.2-linux-x64-musl.jar"
}
]
},
{
"components": [
{
"component": "ruby",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/ruby-installable-openjdk11-21.0.0.2-linux-amd64.jar"
},
{
"component": "python",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/python-installable-openjdk11-21.0.0.2-linux-amd64.jar"
}
]
},
{
"components": [
{
"component": "python",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/python-installable-openjdk11-21.0.0.2-macos-amd64.jar"
},
{
"component": "ruby",
"downloadUrl": "https://download.bell-sw.com/vm/21.0.0.2/ruby-installable-openjdk11-21.0.0.2-macos-amd64.jar"
}
]
}
]
curl https://api.bell-sw.com/v1/nik/releases?components=ruby,python&fields=component,downloadUrl
curl https://api.bell-sw.com/v1/nik/releases?components=ruby,python&fields=component,downloadUrl,components
Invoke-RestMethod https://api.bell-sw.com/v1/nik/releases?components=ruby,python&fields=component,downloadUrl
Invoke-RestMethod https://api.bell-sw.com/v1/nik/releases?components=ruby,python&fields=component,downloadUrl,components
In this example, we use the components=nik,ruby,python request parameter
to have the base NIK component together with some of
its nested NIK components in the text response.
The related JSON response example is available here:
Discover the base and nested Liberica NIK component sets together
The JSON response is converted into the text response
by applying the following rules to this JSON:
URL:
https://api.bell-sw.com/v1/nik/releases?components=nik,ruby,python&fields=component,downloadUrl&output=text
https://api.bell-sw.com/v1/nik/releases?components=nik,ruby,python&fields=component,downloadUrl,components&output=text
nik,https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-aarch64.tar.gz,,
nik,https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-x64-musl.tar.gz,ruby,https://download.bell-sw.com/vm/21.0.0.2/ruby-installable-openjdk11-21.0.0.2-linux-x64-musl.jar
nik,https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-x64-musl.tar.gz,python,https://download.bell-sw.com/vm/21.0.0.2/python-installable-openjdk11-21.0.0.2-linux-x64-musl.jar
nik,https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-amd64.tar.gz,ruby,https://download.bell-sw.com/vm/21.0.0.2/ruby-installable-openjdk11-21.0.0.2-linux-amd64.jar
nik,https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-amd64.tar.gz,python,https://download.bell-sw.com/vm/21.0.0.2/python-installable-openjdk11-21.0.0.2-linux-amd64.jar
nik,https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-aarch64-musl.tar.gz,,
nik,https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-macos-amd64.zip,python,https://download.bell-sw.com/vm/21.0.0.2/python-installable-openjdk11-21.0.0.2-macos-amd64.jar
nik,https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-macos-amd64.zip,ruby,https://download.bell-sw.com/vm/21.0.0.2/ruby-installable-openjdk11-21.0.0.2-macos-amd64.jar
curl https://api.bell-sw.com/v1/nik/releases?components=nik,ruby,python&fields=component,downloadUrl&output=text
curl https://api.bell-sw.com/v1/nik/releases?components=nik,ruby,python&fields=component,downloadUrl,components&output=text
Invoke-RestMethod https://api.bell-sw.com/v1/nik/releases?components=nik,ruby,python&fields=component,downloadUrl&output=text
Invoke-RestMethod https://api.bell-sw.com/v1/nik/releases?components=nik,ruby,python&fields=component,downloadUrl,components&output=text
See how the text response will differ with the following changes made to the fields request parameter: the components value is explicitly defined and the first value.
Text response example:
,,nik,https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-aarch64.tar.gz
ruby,https://download.bell-sw.com/vm/21.0.0.2/ruby-installable-openjdk11-21.0.0.2-linux-x64-musl.jar,nik,https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-x64-musl.tar.gz
python,https://download.bell-sw.com/vm/21.0.0.2/python-installable-openjdk11-21.0.0.2-linux-x64-musl.jar,nik,https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-x64-musl.tar.gz
ruby,https://download.bell-sw.com/vm/21.0.0.2/ruby-installable-openjdk11-21.0.0.2-linux-amd64.jar,nik,https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-amd64.tar.gz
python,https://download.bell-sw.com/vm/21.0.0.2/python-installable-openjdk11-21.0.0.2-linux-amd64.jar,nik,https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-amd64.tar.gz
,,nik,https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-linux-aarch64-musl.tar.gz
python,https://download.bell-sw.com/vm/21.0.0.2/python-installable-openjdk11-21.0.0.2-macos-amd64.jar,nik,https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-macos-amd64.zip
ruby,https://download.bell-sw.com/vm/21.0.0.2/ruby-installable-openjdk11-21.0.0.2-macos-amd64.jar,nik,https://download.bell-sw.com/vm/21.0.0.2/bellsoft-liberica-vm-openjdk11-21.0.0.2-macos-amd64.zip
In this example, we use the components=ruby,python request parameter
to have only the nested NIK components in the text response.
The related JSON response example is available here:
Discover the nested Liberica NIK component set only
In this case, no property of the parent base NIK components
will be included in the text response, except for the components
property array.
And if certain base NIK components do not contain the aforementioned
nested NIK components, these base NIK components will certainly
be excluded from the text response.
The JSON response is converted into the text response
by applying the following rules to this JSON:
URL:
https://api.bell-sw.com/v1/nik/releases?components=ruby,python&fields=component,downloadUrl&output=text
https://api.bell-sw.com/v1/nik/releases?components=ruby,python&fields=component,downloadUrl,components&output=text
ruby,https://download.bell-sw.com/vm/21.0.0.2/ruby-installable-openjdk11-21.0.0.2-linux-x64-musl.jar
python,https://download.bell-sw.com/vm/21.0.0.2/python-installable-openjdk11-21.0.0.2-linux-x64-musl.jar
ruby,https://download.bell-sw.com/vm/21.0.0.2/ruby-installable-openjdk11-21.0.0.2-linux-amd64.jar
python,https://download.bell-sw.com/vm/21.0.0.2/python-installable-openjdk11-21.0.0.2-linux-amd64.jar
python,https://download.bell-sw.com/vm/21.0.0.2/python-installable-openjdk11-21.0.0.2-macos-amd64.jar
ruby,https://download.bell-sw.com/vm/21.0.0.2/ruby-installable-openjdk11-21.0.0.2-macos-amd64.jar
curl https://api.bell-sw.com/v1/nik/releases?components=ruby,python&fields=component,downloadUrl&output=text
curl https://api.bell-sw.com/v1/nik/releases?components=ruby,python&fields=component,downloadUrl,components&output=text
Invoke-RestMethod https://api.bell-sw.com/v1/nik/releases?components=ruby,python&fields=component,downloadUrl&output=text
Invoke-RestMethod https://api.bell-sw.com/v1/nik/releases?components=ruby,python&fields=component,downloadUrl,components&output=text