Sinta adalah sebuah aplikasi information retrieval untuk dokumen-dokumen tugas akhir mahasiswa di lingkungan kampus UKDW Yogyakarta. Aplikasi ini merupakan aplikasi berbasis web (JSP/Servlet dan Alfresco) dan menggunakan WURLF untuk dapat menyesuaikan diri dalam tampilannya di ponsel. Selain itu Sinta juga menggunakan Jersey untuk penyediaan web service berbasis RESTful. Karena sudah tersedia WebService, maka mahasiswa UKDW dapat membuat program sendiri untuk mengakses data Sinta melalui web service ini (tentu saja harus melalui prosedur yang berlaku).
Pada artikel ini, saya akan memberikan contoh program yang mengakses Web Service SInTA dengan menggunakan VB.NET. Oleh karena yang dikembalikan oleh Web Service SInTA adalah JSON Array, maka dalam aplikasi sample .NET ini digunakan pustaka Jayrock untuk memparsing JSON Array tersebut.
Berikut adalah contoh modul aplikasinya:
Imports System.Net
Imports System.IO
Imports Jayrock.Json
Imports Jayrock.Json.Conversion
Module SintaWSSample
Sub Main()
Dim url As String = "http://222.124.22.27:81/sinta/resources/sintasrv?query= &username= &key= "
Dim req As HttpWebRequest
Dim res As HttpWebResponse
Dim reader As StreamReader
Dim jarr As New JsonArray
Dim str As String
Dim strbuff As String = ""
req = WebRequest.Create(url)
res = req.GetResponse()
If (res.StatusCode = 200) Then
reader = New StreamReader(res.GetResponseStream())
str = reader.ReadLine()
If (Not String.IsNullOrEmpty(str)) Then
While (str.Length > 0)
strbuff = strbuff + str
str = reader.ReadLine()
If (String.IsNullOrEmpty(str)) Then
str = ""
End If
End While
End If
Console.WriteLine("Akhir")
Dim aList = CType(JsonConvert.Import(strbuff), IList)
For Each dev As IDictionary In aList
For Each entry As DictionaryEntry In dev
Dim data As String = _
CStr(entry.Key) & _
" = " & entry.Value.ToString()
SaveTextToFile(data, "C:\hasil.txt")
Next
SaveTextToFile("----====----", "C:\hasil.txt")
Next
Else
Console.WriteLine("Ada masalah dalam meminta layanan Sinta")
End If
Console.ReadLine()
End Sub
Public Function SaveTextToFile(ByVal strData As String, _
ByVal FullPath As String, _
Optional ByVal ErrInfo As String = "") As Boolean
Dim bAns As Boolean = False
Dim objReader As StreamWriter
Try
objReader = New StreamWriter(FullPath, True)
objReader.WriteLine(strData)
objReader.Close()
bAns = True
Catch Ex As Exception
ErrInfo = Ex.Message
End Try
Return bAns
End Function
End Module
Pada uri RESTful SInTA Web Service, tiap pengakses diwajibkan memberikan 3 paramter: yaitu query (berisi string query), username (user account SInTA), dan key yang berisi kunci API yang dapat diperoleh dari web SInTA.