Apa itu REST (REpresentational State Transfer)?
REST secara spesifik merujuk pada suatu koleksi prinsip-prinsip arsitektur jaringan yang menggariskan pendefinisian dan pengalamatan sumber daya. Istilah ini sering digunakan dengan longgar untuk mendeskripsikan semua antarmuka sederhana yang menyampaikan data dalam domain spesifik melalui HTTP tanpa tambahan lapisan pesan seperti SOAP atau pelacakan sesi menggunakan cookie HTTP. Dua pengertian ini dapat menimbulkan konflik dan juga tumpang tindih. Dimungkinkan untuk merancang suatu sistem perangkat lunak besar sesuai dengan gaya arsitektur REST Fielding tanpa menggunakan HTTP dan tanpa berinteraksi dengan WWW. Juga dimungkinkan untuk merancang antarmuka XML+HTTP sederhana yang tidak mengikuti prinsip-prinsip REST, tapi sebaliknya mengikuti model dari RPC (remote procedure call). Perbedaan penggunaan istilah REST ini cukup menyebabkan permasalahan dalam diskusi-diskusi teknis.
Sistem yang mengikuti prinsip REST Fielding sering disebut sebagai "RESTful".
Sumber: http://www.wikipedia.org/
Secara umum, setiap mengakses Web Service kita harus menyertakan beberapa variabel yang diperlukan untuk memberikan informasi atau validasi proses yang dikirim pada HTTP Header, misalnya:
Accept -- data format (XML atau JSON)
X-Cons-ID -- Consumer ID
X-Timestamp -- TimeStamp
X-Signature -- Pola yang digunakan ditentukan oleh REST/Web services atau variabel lain sesuai dengan aturan yang diberikan oleh Web Service ketika diakses.
Sebelum lebih lanjut untuk mengakses Web Service, pertama-pertama saya akan mencoba dengan menggunakan Tools (Add-ons). Add-on ini adalah software tambahan atau ekstensi Advanced Rest Client dari browser Chrome, yang dapat anda download di Chrome Web Store. Contoh percobaan yang saya menggunakan dapat anda lihat seperti gambar dibawah ini:
VB6 referensi yang diperlukan
Referensi dalam VB6 yang diperlukan dalam mengakses REST/Web services ada dua yaitu Microsoft WinHTTP Services dan Microsoft XML. Oleh karena itu, pertama yang kita lakukan adalah mengambil Reference komponen tersebut seperti contoh dalam di bawah ini:
GET, PUT, POST, DELETE dalam REST/Web Service
Proses utama yang dapat dilakukan pada akses REST/Web services ada 4 (empat) yaitu: GET: mengambil data dari REST/Web services
PUT: menambahkan data ke REST/Web services
POST: merubah/edit data ke REST/Web services
DELETE: menghapus data di REST/Web services
Berikut contoh Program (Source Code) untuk mengakses REST/Web services
Buat 4 (empat) fungsi Get, Put, Post dan Delete ke dalam Class atau Module seperti berikut ini:
Public Function GetResponse(URI As String) As Boolean
Dim oHTTRequest As New WinHttp.WinHttpRequest
Dim oResult As String
On Error GoTo ErrRequest
oHTTRequest.Option(WinHttpRequestOption_EnableHttp1_1) = False
oHTTRequest.Open "GET", URI, False
oHTTRequest.SetRequestHeader "X-Cons-ID", "XXXXXX (your cons-id)"
oHTTRequest.SetRequestHeader "X-Timestamp", "XXXXX (timestamp)"
oHTTRequest.SetRequestHeader "X-Signature", "XXXXX (your signature)"
oHTTRequest.Send
If oHTTRequest.Status = 200 Then
GetResponse = True
oResult = oHTTRequest.ResponseText
Else
GetResponse = False
oResult = oHTTRequest.ResponseText
End If
Set oHTTRequest = Nothing
Exit Function
ErrRequest:
Set oHTTRequest = Nothing
GetResponse = False
Err.Raise Err.Number, ", Err.Description"
End Function
Public Function PutResponse(URI As String) As Boolean
Dim oHTTRequest As MSXML2.XMLHTTP30
Dim oResult As String
On Error GoTo ErrRequest
Set oHTTRequest = New MSXML2.XMLHTTP30
oHTTRequest.Open "PUT", URI, False
oHTTRequest.SetRequestHeader "X-Cons-ID", "XXXXXX (your cons-id)"
oHTTRequest.SetRequestHeader "X-Timestamp", "XXXXX (timestamp)"
oHTTRequest.SetRequestHeader "X-Signature", "XXXXX (your signature)"
oHTTRequest.SetRequestHeader "Content-Type", "text/xml"
oHTTRequest.Send "XML Data Put?"
oResult = oHTTRequest.ResponseText
If oHTTRequest.Status = 201 Or oHTTRequest.Status = 200 Then
PostResponse = True
Else
PostResponse = False
End If
Set oHTTRequest = Nothing
Exit Function
ErrRequest:
PostResponse = False
Err.Raise Err.Number, ", Err.Description"
End Function
Public Function PostResponse(URI As String) As Boolean
Dim oHTTRequest As MSXML2.XMLHTTP30
Dim oResult As String
On Error GoTo ErrRequest
Set oHTTRequest = New MSXML2.XMLHTTP30
oHTTRequest.Open "POST", URI, False
oHTTRequest.SetRequestHeader "X-Cons-ID", "XXXXXX (your cons-id)"
oHTTRequest.SetRequestHeader "X-Timestamp", "XXXXX (timestamp)"
oHTTRequest.SetRequestHeader "X-Signature", "XXXXX (your signature)"
oHTTRequest.SetRequestHeader "Content-Type", "text/xml"
oHTTRequest.Send "XML Data Post?"
oResult = oHTTRequest.ResponseText
If oHTTRequest.Status = 201 Or oHTTRequest.Status = 200 Then
PostResponse = True
Else
PostResponse = False
End If
Set oHTTRequest = Nothing
Exit Function
ErrRequest:
PostResponse = False
Err.Raise Err.Number, ", Err.Description"
End Function
Public Function DeleteResponse(URI_Response As String) As Boolean
Dim oHTTRequest As MSXML2.XMLHTTP30
Dim oResult As String
On Error GoTo ErrRequest
Set oHTTRequest = New MSXML2.XMLHTTP30
oHTTRequest.Open "DELETE", URI, False
oHTTRequest.SetRequestHeader "X-Cons-ID", Fields.xConsID
oHTTRequest.SetRequestHeader "X-Timestamp", Fields.xTimeStamp
oHTTRequest.SetRequestHeader "X-Signature", Fields.xSignature
oHTTRequest.SetRequestHeader "Content-Type", "text/xml"
oHTTRequest.Send "XML Data Delete?"
oResult = oHTTRequest.ResponseText
If oHTTRequest.Status = 201 Or oHTTRequest.Status = 200 Then
DeleteResponse = True
Else
DeleteResponse = False
End If
Set oHTTRequest = Nothing
Exit Function
ErrRequest:
DeleteResponse = False
Err.Raise Err.Number, ", Err.Description"
End Function
Setelah anda buat fungsi (function) dalam Class atau modul diatas, selanjutnya anda tinggal menggunakan keempat fungsi tersebut dalam proyek VB6 dan memasukkan parameter-parameter yang dibutuhkan, serta menangkap nilai balik dari fungsi tersebut.
Artikel ini adalah contoh dari pengalaman saya dalam membuat program aplikasi yang REST/Web Service dengan VB6; Jika Anda mengalami kesulitan saat membuat parameter "X-Timestamp" atau "X-Signature", Anda dapat menghubungi saya melalui komentar pada artikel ini atau dengan email, mudah-mudahan saya dapat membantu anda; Saya berharap anda bisa mengembangkan lebih lanjut contoh sedikit program dari pengalaman saya ini, dan semoga artikel ini dapat berguna sesuai dengan tujuan anda.
Daftarkan email anda disini untuk berlangganan artikel kodiing
ConversionConversion EmoticonEmoticon