Pengantar
Informasi URL
Development URL :
http://sandbox.sibigparking.comProduction URL :
https://api.sibigparking.comVersi :
v1
Setiap kota bisa memiliki banyak lahan parkir. Lokasi-lokasi parkir tersebut, kemudian, juga dikelola oleh banyak pengelola jasa parkir. Sebagai pemegang perizinan, pemerintah harusnya dapat melihat lalu-lalang parkir di kotanya dengan mudah. Untuk itulah SI BIG PARKING hadir, sebagai pemantau parkir suatu kota secara realtime.
Sebelum menyelami API ini, alangkah baiknya Anda memahami beberapa hal :
Mesinadalah sebutan untuk server lokal atau alat lain yang Anda gunakan untuk berkomunikasi dengan SI BIG PARKING.Setiap request yang dilakukan harus menyertakan token (kecuali request untuk mendapatkan token).
Response API tersedia dalam format JSON dan XML.
Setiap API endpoint memiliki batasan request (rate limit) yang berbeda. Perhitungan batasan tersebut akan kembali seperti semula setiap satu jam. Batasan ini dapat dilihat di setiap response header, yaitu :
X-RateLimit-Limit⇒ Jumlah batasan tiap jam.X-RateLimit-Remaining⇒ Sisa jumlah request yang anda miliki.Retry-After⇒ Waktu untuk dapat melakukan request kembali. Muncul ketika anda sudah melebihi batas yang ditentukan.
- Setiap request harus menyertakan
Acceptheader sesuai dengan salah satu format berikut :- application/json
- application/xml
Autentikasi
Contoh Request :
curl -X POST "http://sandbox.sibigparking.com/v1/auth"
-H "Authorization: Basic OTY2NjJmYzktN2YxZS00Y2YwLWIxNjItYjIwNDYzMzRjZWU0OkRneDdFNUZ6MHJKcWZubzF2OE1DVFR5QWp1bVJNVUtC"
-H "Accept: application/xml"
Response JSON:
{
"token": "eyJ0eXAiOiJKV1QiLCGhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzaWJpZy1hcGkuZGV2IiwiaWF0IjoxNDcwMzY5MTYzLCJuYmYiOjE0NzAzNjkxNjMsImV4cCI6MTQ3MDM3Mjc2MywibWlkIjoiY1c0d016STBOVE10TlhKdk5DMDBNbk16TFRsdk9UVXRjakZ3YnpZd2NUVTBNVFl6Iiwic3R0IjoiYWxpdmUifQ.r1yYlg-t6rmKQCr2BxjtUdmYLjEhaohy7Jv-AaGgrDc",
"expired": 1469178224
}
Response XML
<xml>
<token>eyJ0eXAiOiJKV1QiLCGhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzaWJpZy1hcGkuZGV2IiwiaWF0IjoxNDcwMzY5MTYzLCJuYmYiOjE0NzAzNjkxNjMsImV4cCI6MTQ3MDM3Mjc2MywibWlkIjoiY1c0d016STBOVE10TlhKdk5DMDBNbk16TFRsdk9UVXRjakZ3YnpZd2NUVTBNVFl6Iiwic3R0IjoiYWxpdmUifQ.r1yYlg-t6rmKQCr2BxjtUdmYLjEhaohy7Jv-AaGgrDc"</token>
<expired>1469178281</expired>
</xml>
Panjang token ± 300 karakter.
Digunakan untuk mendapatkan token dari server. Kemudian token tersebut harus disertakan dalam setiap dalam request.
HTTP Request
POST /v1/auth
HTTP Headers
Accept: <accept type>
Authorization: Basic <base64_encode(machine_id:machine_secret)>
Rate Limit
Maksimal 3 request per jam.
Lokasi
Contoh Request :
curl -X GET
"http://sandbox.sibigparking.com/v1/parking/locations"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzaWJpZy1hcGkuZGV2IiwiaWF0IjoxNDcwMzY5MTYzLCJuYmYiOjE0NzAzNjkxNjMsImV4cCI6MTQ3MDM3Mjc2MywibWlkIjoiY1c0d016STBOVE10TlhKdk5DMDBNbk16TFRsdk9UVXRjakZ3YnpZd2NUVTBNVFl6Iiwic3R0IjoiYWxpdmUifQ.r1yYlg-t6rmKQCr2BxjtUdmYLjEhaohy7Jv-AaGgrDc"
-H "Accept: application/json"
Response JSON:
{
"locations": [
{
"location_id": "4d565e1a-bcff-4ae4-92d9-2a23cff67e27",
"name": "Mall Bekasi Sumarecon",
"address": "Jalan Boulevard Ahmad Yani Blok M",
"city": "BEKASI"
}
],
"count": 1
}
Response XML
<?xml version="1.0" encoding="utf-8"?>
<xml>
<locations>
<location>
<location_id>4d565e1a-bcff-4ae4-92d9-2a23cff67e27</location_id>
<name>Mall Bekasi Sumarecon</name>
<address>Jalan Boulevard Ahmad Yani Blok M</address>
<city>BEKASI</city>
</location>
</locations>
<count>1</count>
</xml>
Digunakan untuk mendapatkan daftar lokasi berdasarkan operator yang dimiliki oleh mesin.
HTTP Request
GET /v1/parking/locations
HTTP Headers
Accept: <accept type>
Authorization: Bearer <token>
Rate Limit
Maksimal 100 request per jam.
Transaksi
Digunakan untuk memasukkan data transaksi parkir ke SI BIG PARKING. Terdapat dua macam metode untuk proses ini, yaitu transaksi tunggal dan transaksi jumlah besar.
Transaksi Tunggal
Untuk mengirim satu transaksi.
Contoh Request
curl -X POST "http://sandbox.sibigparking.com/v1/parking/transaction"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzaWJpZy1hcGkuZGV2IiwiaWF0IjoxNDcwMzY5MTYzLCJuYmYiOjE0NzAzNjkxNjMsImV4cCI6MTQ3MDM3Mjc2MywibWlkIjoiY1c0d016STBOVE10TlhKdk5DMDBNbk16TFRsdk9UVXRjakZ3YnpZd2NUVTBNVFl6Iiwic3R0IjoiYWxpdmUifQ.r1yYlg-t6rmKQCr2BxjtUdmYLjEhaohy7Jv-AaGgrDc"
-H "Accept: application/json"
-H "Content-Type: application/x-www-form-urlencoded"
-d 'location=4d565e1a-bcff-4ae4-92d9-2a23cff67e27&vehicle=1&payment=1&enter=2016-08-01 16:15:11&exit=2016-08-01 16:15:12&plate_number=D 4567 A&amount=1000'
Response JSON
{
"message": "Successfully add transaction."
}
Response XML
<?xml version="1.0" encoding="utf-8"?>
<xml>
<message>Successfully add transaction.</message>
</xml>
HTTP Request
POST /v1/parking/transaction
HTTP Headers
Accept: <accept type>
Authorization: Bearer <token>
Content-Type: application/x-www-form-urlencoded
HTTP Request Body
| Key | Rule | Deskripsi |
|---|---|---|
| location |
|
id dari lokasi |
| vehicle |
|
Id dari kendaraan Keterangan :
|
| payment |
|
Id dari jenis pembayaran Keterangan :
|
| enter |
|
Waktu masuk kendaraan |
| exit |
|
Waktu keluar kendaraan |
| plate_number |
|
Nomer plat kendaraan |
| amount |
|
Jumlah uang |
Rate Limit
Maksimal 5000 request per jam.
Transaksi Jumlah Besar
Contoh format data json yang dikirim
[
{
"location":"4d565e1a-bcff-4ae4-92d9-2a23cff67e27",
"vehicle":1,
"payment":1,
"enter":"2016-08-03 16:15:11",
"exit":"2016-08-03 19:15:12",
"plate_number":"2222",
"amount":"2000"
},
{
"location":"4d565e1a-bcff-4ae4-92d9-2a23cff67e27",
"vehicle":1,
"payment":1,
"enter":"2016-08-03 16:15:11",
"exit":"2016-08-03 18:15:12",
"plate_number":"2222",
"amount":"2000"
}
]
Contoh Request
curl -X POST "http://sandbox.sibigparking.com/v1/parking/transactions"
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzaWJpZy1hcGkuZGV2IiwiaWF0IjoxNDcwMzY5MTYzLCJuYmYiOjE0NzAzNjkxNjMsImV4cCI6MTQ3MDM3Mjc2MywibWlkIjoiY1c0d016STBOVE10TlhKdk5DMDBNbk16TFRsdk9UVXRjakZ3YnpZd2NUVTBNVFl6Iiwic3R0IjoiYWxpdmUifQ.r1yYlg-t6rmKQCr2BxjtUdmYLjEhaohy7Jv-AaGgrDc"
-H "Accept: application/json"
-H "Content-Type: application/x-www-form-urlencoded"
-d 'transactions=[{"location":"4d565e1a-bcff-4ae4-92d9-2a23cff67e27","vehicle":1,"payment":1,"enter":"2016-08-03 16:15:11","exit":"2016-08-03 19:15:12","plate_number":"2222","amount":"2000"},{"location":"4d565e1a-bcff-4ae4-92d9-2a23cff67e27","vehicle":1,"payment":1,"enter":"2016-08-03 16:15:11","exit":"2016-08-03 18:15:12","plate_number":"2222","amount":"2000"}]'
Response JSON
{
"message": "Successfully add transactions.",
"sent": 2,
"succeed": 1,
"failed": 1
}
Response XML
<?xml version="1.0" encoding="utf-8"?>
<xml>
<message>Successfully add transactions.</message>
<sent>2</sent>
<succeed>1</succeed>
<failed>1</failed>
</xml>
Digunakan untuk mengirimkan beberapa transaksi secara bersamaan. Data yang dikirim merupakan gabungan dari transaksi tunggal yang dibungkus dalam format Array JSON. Setiap menjalankan proses ini, maksimal transaksi yang dapat dikirim adalah 1000. Setiap transaksi juga akan divalidasi seperti proses transaksi tunggal. Jika ada data yang kurang lengkap, maka data yang dikirim dianggap tidak valid dan gagal, sedangkan data yang valid akan tetap diproses oleh sistem.
HTTP Request
POST /v1/parking/transactions
HTTP Headers
Accept: <accept type>
Authorization: Bearer <token>
Content-Type: application/x-www-form-urlencoded
HTTP Request Body
| Key | Rule | Deskripsi |
|---|---|---|
| transactions |
|
Data transaksi |
Rate Limit
Maksimal 100 request per jam.
Errors
| Kode | Pesan | Deskripsi |
|---|---|---|
| 400 | Token is required. | Token tidak disertakan saat melakukan request |
| 400 | Token is not valid. | Token yang digunakan merupakan token yang tidak valid |
| 400 | Token expired. | Token sudah kadaluarsa |
| 400 | Machine is not valid. | Id Mesin di dalam token tidak valid. |
| 400 | Machine not registered. | Mesin tidak terdaftar di server. |
| 400 | Machine blocked or inactive. | Mesin sedang diblokir atau tidak aktif. |
| 404 | Url not found. | HTTP Request tidak ditemukan. |
| 404 | Record not found. | Data tidak tersimpan di database. |
| 405 | Method not allowed. | Metode url tidak sesuai dengan ketentuan |
| 406 | Content-Type header not allowed. | Content type header tidak disertakan saat request |
| 406 | Accept header not set. | Accept Header untuk format response tidak disertakan saat request |
| 422 | Pesan error bermacam-macam | Error saat field input error |
| 500 | Internal Server Error | Server sedang bermasalah |
| 503 | Service Unavailable | Sedang ada pemeliharaan sistem |