A Hacker News API wrapper for Crystal
Add this to your application's shard.yml
:
dependencies:
hncr:
github: aretrace/hncr
branch: main
require "hncr"
# Get ten stories of the 'top' category and print them
HN::Item.new(type: "top", count: 10) do |item|
puts "#{ item["title"] }, by #{ item["by"] }\n#{ item["url"]? }\n\n"
end
# Get user by id and print the 'about' field
HN::User.new(id: "jl") do |user|
puts user["about"]
end
The API returns items concurrently.
HN::Item(type, count, &block)
-
type : String
One of the following strings for the type of story:new
,top
,best
,ask
,show
, orjob
. -
count : Int32
The number of stories to return. -
&block
Block takes one argument that returns a JSON::Any struct containing the item's json fields.
HN::User(id, &block)
-
id : String
The id of the user. -
&block
Block takes one argument that returns a JSON::Any struct containing the user's json fields.