Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Ruby) SCIS SearchSee more SCiS Schools Catalogue ExamplesDemonstrates the SCIS (Schools Catalogue Information Service) search API call.
require 'chilkat' # This example assumes the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. http = Chilkat::CkHttp.new() # Implements the following CURL command: # curl -i -X GET --url 'https://api.scisdata.com/catalogue/api/search?query=titleSearch%3Adogs%20AND%20publicationYear%3A2015&from=0&size=20&sort=author&order=asc' -H 'Authorization: Basic ****' # Use the following online tool to generate HTTP code from a CURL command # Convert a cURL Command to HTTP Source Code # This causes the "Authorization: Basic ****" to be added to each request. http.put_Login("myLogin") http.put_Password("myPassword") http.put_BasicAuth(true) sbQuery = Chilkat::CkStringBuilder.new() sbQuery.Append("titleSearch:dogs AND publicationYear:2015") sbUrl = Chilkat::CkStringBuilder.new() sbUrl.Append("https://api.scisdata.com/catalogue/api/search?query=") # If non-usascii chars are included in the search, we don't know if utf-8 or windows-1252 is desired by the server. You'll need to find out.. sbUrl.Append(sbQuery.getEncoded("url","utf-8")) sbUrl.Append("&from=0&size=20&sort=author&order=asc") sbResponseBody = Chilkat::CkStringBuilder.new() success = http.QuickGetSb(sbUrl.getAsString(),sbResponseBody) if (success == false) print http.lastErrorText() + "\n"; exit end jResp = Chilkat::CkJsonObject.new() jResp.LoadSb(sbResponseBody) jResp.put_EmitCompact(false) print "Response Body:" + "\n"; print jResp.emit() + "\n"; respStatusCode = http.get_LastStatus() print "Response Status Code = " + respStatusCode.to_s() + "\n"; if (respStatusCode >= 400) print "Response Header:" + "\n"; print http.lastHeader() + "\n"; print "Failed." + "\n"; exit end # Sample JSON response: # (Sample code for parsing the JSON response is shown below) # { # "data": { # "hits": { # "hits": [ # { # "_index": "scisdata2", # "_type": "bibdatatype", # "_source": { # "isbn": [ # "9781517638160" # ], # "languageTermCode": [ # "eng" # ], # "mainAuthor": { # "namePersonalPrimary": [ # "Abbott, Eleanor Hallowell." # ] # }, # "title": { # "titlePrimary": [ # "Peace on Earth, good-will to dogs" # ], # "noteStmOfResponsibility": [ # "by Eleanor Hallowell Abbott." # ] # }, # "scisType": [ # "Book" # ], # "dateIssuedMarc": 2015, # "languageTermValue": [ # "English" # ], # "contributor": {}, # "isbn13": "9781517638160", # "imageFileName": "9781517638160.jpg", # "publicationDetails": "United States, Create Space Independent Publishing Platform, 2015", # "isbn10": "151763816X", # "id": "1867852" # }, # "_id": "1867852", # "sort": [ # "abbott, eleanor hallowell." # ], # "_score": null # }, # { # "_index": "scisdata2", # "_type": "bibdatatype", # "_source": { # "isbn": [ # "9781780747910" # ], # "languageTermCode": [ # "eng" # ], # "mainAuthor": { # "namePersonalPrimary": [ # "Adams, Richard." # ] # }, # "title": { # "titlePrimary": [ # "The plague dogs" # ], # "noteStmOfResponsibility": [ # "Richard Adams." # ] # }, # "scisType": [ # "Book" # ], # "dateIssuedMarc": 2015, # "languageTermValue": [ # "English" # ], # "contributor": {}, # "isbn13": "9781780747910", # "imageFileName": "9781780747910.jpg", # "publicationDetails": "New York, Rock the Boat, 2015", # "isbn10": "1780747918", # "id": "1749228" # }, # "_id": "1749228", # "sort": [ # "adams, richard." # ], # "_score": null # }, # ... # ], # "total": 84, # "max_score": null # }, # "took": 585, # "timed_out": false # }, # "subscriptionStatus": {} # } # Sample code for parsing the JSON response... # Use the following online tool to generate parsing code from sample JSON: # Generate Parsing Code from JSON dataHitsTotal = jResp.IntOf("data.hits.total") dataHitsMax_score = jResp.stringOf("data.hits.max_score") dataTook = jResp.IntOf("data.took") dataTimed_out = jResp.BoolOf("data.timed_out") i = 0 count_i = jResp.SizeOfArray("data.hits.hits") while i < count_i jResp.put_I(i) v_index = jResp.stringOf("data.hits.hits[i]._index") v_type = jResp.stringOf("data.hits.hits[i]._type") v_sourceDateIssuedMarc = jResp.IntOf("data.hits.hits[i]._source.dateIssuedMarc") v_sourceIsbn13 = jResp.stringOf("data.hits.hits[i]._source.isbn13") v_sourceImageFileName = jResp.stringOf("data.hits.hits[i]._source.imageFileName") v_sourcePublicationDetails = jResp.stringOf("data.hits.hits[i]._source.publicationDetails") v_sourceIsbn10 = jResp.stringOf("data.hits.hits[i]._source.isbn10") v_sourceId = jResp.stringOf("data.hits.hits[i]._source.id") v_id = jResp.stringOf("data.hits.hits[i]._id") v_score = jResp.stringOf("data.hits.hits[i]._score") j = 0 count_j = jResp.SizeOfArray("data.hits.hits[i]._source.isbn") while j < count_j jResp.put_J(j) strVal = jResp.stringOf("data.hits.hits[i]._source.isbn[j]") j = j + 1 end j = 0 count_j = jResp.SizeOfArray("data.hits.hits[i]._source.languageTermCode") while j < count_j jResp.put_J(j) strVal = jResp.stringOf("data.hits.hits[i]._source.languageTermCode[j]") j = j + 1 end j = 0 count_j = jResp.SizeOfArray("data.hits.hits[i]._source.mainAuthor.namePersonalPrimary") while j < count_j jResp.put_J(j) strVal = jResp.stringOf("data.hits.hits[i]._source.mainAuthor.namePersonalPrimary[j]") j = j + 1 end j = 0 count_j = jResp.SizeOfArray("data.hits.hits[i]._source.title.titlePrimary") while j < count_j jResp.put_J(j) strVal = jResp.stringOf("data.hits.hits[i]._source.title.titlePrimary[j]") j = j + 1 end j = 0 count_j = jResp.SizeOfArray("data.hits.hits[i]._source.title.noteStmOfResponsibility") while j < count_j jResp.put_J(j) strVal = jResp.stringOf("data.hits.hits[i]._source.title.noteStmOfResponsibility[j]") j = j + 1 end j = 0 count_j = jResp.SizeOfArray("data.hits.hits[i]._source.scisType") while j < count_j jResp.put_J(j) strVal = jResp.stringOf("data.hits.hits[i]._source.scisType[j]") j = j + 1 end j = 0 count_j = jResp.SizeOfArray("data.hits.hits[i]._source.languageTermValue") while j < count_j jResp.put_J(j) strVal = jResp.stringOf("data.hits.hits[i]._source.languageTermValue[j]") j = j + 1 end j = 0 count_j = jResp.SizeOfArray("data.hits.hits[i].sort") while j < count_j jResp.put_J(j) strVal = jResp.stringOf("data.hits.hits[i].sort[j]") j = j + 1 end j = 0 count_j = jResp.SizeOfArray("data.hits.hits[i]._source.contributor.namePersonalOther") while j < count_j jResp.put_J(j) strVal = jResp.stringOf("data.hits.hits[i]._source.contributor.namePersonalOther[j]") j = j + 1 end j = 0 count_j = jResp.SizeOfArray("data.hits.hits[i]._source.contributor.nameCorporateOther") while j < count_j jResp.put_J(j) strVal = jResp.stringOf("data.hits.hits[i]._source.contributor.nameCorporateOther[j]") j = j + 1 end i = i + 1 end |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.