require "./medium_client" # This allows you to read posts responses from a local file instead of hitting # the API all the time. You can get an api response by inserting the post id # in this curl(1) command: # curl -X "POST" "https://medium.com/_/graphql" \ # -H 'Content-Type: application/json; charset=utf-8' \ # -d $'{ # "query": "query{post(id:\\"[post id here]\\"){title creator{name id}content{bodyModel{paragraphs{text type markups{name title type href start end rel anchorType}href iframe{mediaResource{id}}layout metadata{__typename id originalWidth originalHeight}}}}}}" # }' > [post id here].json # Then place it in the /tmp/posts directory. The post id will come in as a # query param and go look for a file with a matching filename. class LocalClient < MediumClient def self.post_data(post_id : String) : HTTP::Client::Response body = File.read("tmp/posts/#{post_id}.json") HTTP::Client::Response.new(HTTP::Status::OK, body: body) end end