Hayoo! API
Hayoo! provides a JSON-based webservice API, which can be used to retrieve search results in a structured format. This allows one to include Hayoo! search functionality in other applications. Arbitrary queries can be submitted the same way as they would be entered them into the search box and results are returned encoded in JSON format.
You may use this service for whatever you like and without any limitations, although we would be very happy to know about any application that uses the Hayoo! webservice API. Just drop us a line at hayoo@holumbus.org.
Request URI
Direct your search request to the following URI:
http://holumbus.fh-wedel.de/hayoo/hayoo.json?query=YOUR_QUERY
Provide your query as argument to the
query
URI parameter. Please note that you need to ensure proper URI encoding
for the query argument. The syntax for the query is the same as if it
would be entered into the search box. A detailed
explanation of the syntax can be found
here.
Response
The response to a search request will be encoded in JSON format and is structured as follows:
{
"message":"Found 12 results and 17 completions.",
"hits":12,
"functions":[ {
"name":"map",
"uri":"http://hackage.haskell.org/...",
"module":"Data.Map",
"signature":"(a->b)->[a]->[b]",
"package":"containers"
}, ... ],
"completions":[ {
"word":"MapM",
"count":11
}, ... ],
"modules":[ {
"name":"Data",
"count":19
} }, ... ],
"packages":[ {
"name":"containers",
"count":13
}, ... ]
}
The message
field will contain a descriptive status message about the result
or any errors encountered. The
hits field will contain the total number of
functions found. In the
functions field, an array containing all functions
found will be returned. For every function,
a JSON object is included in the array.
Each of these objects contains the function name,
the URI pointing to the Haddock documentation, the module,
the signature and the package name in the
name, uri,
module, signature
and package fields,
respectively.
The completions contains all word completions
(suggestions) resulting from the query For every completion,
a JSON object is included in the array, containing the suggested
word and the total number of occurrences of this word in the
search result in the word and
count fields.
The modules and packages
fields contain arrays with JSON objects denoting the occurrences
of root modules and packages in the search result. For each element,
the module/package name is included in the name
field and the number of occurrences in the count field.
