Sha256: be93242a13867bc732c50fc598d0f59654293cbf2783970a89290d49b9dec0a4
Contents?: true
Size: 1.14 KB
Versions: 1
Compression:
Stored size: 1.14 KB
Contents
require 'http' require 'google_knowledge_graph/entity' module GoogleKnowledgeGraph API_URL = 'https://kgsearch.googleapis.com/v1/entities:search' @api_key = nil class << self attr_accessor :api_key def get id ensure_api_key! raise StandardError.new('InvalidIdStartingWithKG') if id.start_with? 'kg:' response = request( key: api_key, limit: 1, ids: [id] ) return nil unless response.status.success? return nil unless data = JSON.parse(response.body).dig('itemListElement', 0, 'result') Entity.new(data) end def search query, types: [] ensure_api_key! response = request( key: api_key, query: query, types: types, ) return [] unless response.status.success? JSON.parse(response.body)['itemListElement'] .map{ |item| { entity: Entity.new(item['result']), score: item['resultScore'] }} end private def ensure_api_key! raise StandardError.new('EmptyAPIKey') unless api_key end def request params HTTP.get API_URL, params: params end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
google_knowledge_graph-0.1.1 | lib/google_knowledge_graph.rb |