Halaman ini akan membantu Anda memulai dengan API Job Offer Single Submission (JOSS).Setelah membaca dokumen ini beserta sub-dokumennya, Anda akan memahami cara untuk:Menghasilkan signature sebagai metode autentikasi
Mengintegrasikan aplikasi Anda dengan API JOSS
Prasyarat#
Untuk menggunakan informasi dalam dokumen ini, Anda perlu mengetahui hal-hal berikut:Cara kerja API RESTful, bagaimana cara memanggilnya, dan cara menginterpretasi responsnya.
Pengetahuan dasar tentang cara kerja autentikasi API.
Detail Latar Belakang Umum#
Bagian ini mencakup aspek umum untuk semua API JOSS.Endpoint API#
Karena API JOSS bersifat RESTful, pengguna mengirim permintaan HTTPS ke alamat URL untuk memanggil perintah. API JOSS memiliki dua endpoint (awalan alamat umum untuk URL perintah), satu untuk panggilan staging
dan satu lagi untuk panggilan production
. Anda juga menggunakan signature yang berbeda untuk mengautentikasi permintaan staging
dan production
, yang akan dibahas di bagian Signature.Staging: <https://sandbox.joss.kemnaker.go.id>
Production: <https://joss.kemnaker.go.id>
Semua permintaan API JOSS harus menggunakan HTTPS. Permintaan HTTP akan diarahkan secara paksa ke HTTPS.
Setiap permintaan ke API JOSS harus memiliki header permintaan berikut:Http Header | Required |
---|
Accept | Saat ini hanya mendukung application/json dan application/xml |
Content-Type | Header ini dibutuhkan saat menggunakan metode POST, PATCH, PUT. Saat ini hanya mendukung application/json |
Client-Id | Client ID yang diperoleh dari Kementerian Ketenagakerjaan Republik Indonesia |
Request-Id | String acak yang unik yang dihasilkan dari sisi klien untuk melindungi dari permintaan duplikat |
Request-Timestamp | Timestamp permintaan dalam format UTC ISO8601 UTC+0. Artinya untuk memproses transaksi pada UTC+7 (WIB), klien perlu mengurangi waktu dengan 7. Misalnya: untuk memproses transaksi pada 22 September 2022 pukul 08:51:00 WIB, timestamp yang harus digunakan adalah 2022-09-22T01:51:00Z |
Signature | Parameter keamanan yang perlu dihasilkan di Backend klien dan diletakkan di header permintaan untuk memastikan bahwa permintaan berasal dari klien yang valid |
Silakan merujuk ke bagian Autentikasi untuk menghasilkan signature. Kode Respons HTTP#
Status Code | Reason |
---|
200 OK | Ketika permintaan sesuai dengan yang diharapkan |
201 Created | Ketika permintaan sesuai dengan yang diharapkan |
400 Bad Request | Terjadi kesalahan logika |
401 Unauthorized | Signature tidak valid atau signature yang diberikan sudah kedaluwarsa |
403 Forbidden | Akses token tidak memiliki izin untuk memproses permintaan |
404 Not Found | Sumber daya yang ditentukan tidak ditemukan |
422 Unprocessable Entity | Terjadi kesalahan validasi |
429 Too Many Requests | Terlalu banyak permintaan ke server |
500 Internal Server Error | Terjadi kesalahan sistem atau aplikasi. Meskipun permintaan klien terlihat benar, ada yang tidak terduga di server. Anda dapat mencoba permintaan kembali dalam kasus ini |
503 Service Unavailable | Server tidak dapat menangani permintaan karena pemeliharaan sementara. Anda bisa mencoba lagi sedikit lebih lama |
504 Gateway Timeout | Server tidak dapat menangani permintaan karena pemrosesan data yang terlalu banyak. Anda bisa mencoba lagi sedikit lebih lama atau mempersingkat interval waktu dalam kasus ini |
Semua permintaan kecuali metode GET harus diidentifikasi secara unik dengan header Request-Id
. Request-Id
yang duplikat akan mengembalikan status http 409 Conflict
.