Langsung ke konten

Endpoint Update API

GitHub

Berikut contoh code di JavaScript untuk mengirim update ke plugin

interface AppInfos {
version_name: string
version_build: string
version_os: string
custom_id?: string
is_prod?: boolean
is_emulator?: boolean
plugin_version: string
platform: string
app_id: string
device_id: string
}
export const handler: Handler = async (event) => {
const body = JSON.parse(event.body || '{}') as AppInfos
const {
platform,
app_id,
version_os,
device_id,
version_name,
version_build,
plugin_version,
} = body
console.log('update asked', platform,
app_id,
version_os,
device_id,
version_name,
version_build,
plugin_version)
if (version_name === '1.0.0') {
return {
version: '1.0.1',
url: 'https://apiurl.com/mybuild_101.zip',
checksum: 'sha256_checksum_of_bundle',
}
}
else if (version_name === '1.0.1') {
return {
version: '1.0.2',
url: 'https://apiurl.com/mybuild_102.zip',
checksum: 'sha256_checksum_of_bundle',
}
}
else {
return {
message: 'Error version not found'
version: '',
url: '',
}
}
}

Untuk bundle tanpa enkripsi, endpoint Anda harus mengembalikan:

{
"version": "1.0.2",
"url": "https://apiurl.com/mybuild_102.zip",
"checksum": "sha256_checksum_of_bundle"
}

Untuk bundle terenkripsi, Anda juga perlu menyertakan session key:

{
"version": "1.0.2",
"url": "https://apiurl.com/mybuild_102.zip",
"checksum": "encrypted_checksum_from_encrypt_command",
"session_key": "ivSessionKey_from_encrypt_command"
}

Dan jika tidak ada update atau error, tambahkan message key dan opsional error:

{
"message": "Version not found",
"error": "The backend crashed",
"version": "1.0.2",
}
  • checksum: Hash SHA256 dari file zip bundle untuk verifikasi integritas
  • session_key: Wajib hanya untuk bundle terenkripsi - ini adalah ivSessionKey yang dikembalikan oleh perintah encrypt
  • version: Identifier versi dalam format semver
  • url: URL HTTPS tempat bundle dapat di-download

Untuk mempelajari cara membuat bundle yang kompatibel dan membuat checksum, lihat dokumentasi Auto Update.

Untuk bundle terenkripsi, lihat dokumentasi Encrypted Bundles yang menjelaskan alur kerja enkripsi secara lengkap.

Jika Anda menggunakan Endpoint Update API untuk merencanakan otomatisasi CI/CD, hubungkan dengan Menggunakan @capgo/capacitor-updater untuk fitur native di bagian Menggunakan @capgo/capacitor-updater, CI/CD Capgo untuk workflow produk di Capgo CI/CD, Capgo Native Build untuk workflow produk di Capgo Native Builds, Integrasi Capgo untuk workflow produk di Capgo Integrations, dan Integrasi CI/CD untuk detail implementasi di CI/CD Integration.