[{"data":1,"prerenderedAt":178},["ShallowReactive",2],{"project-7935138":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":39,"post_text":29,"what":40,"said":59,"maker_in_thread":123,"shape":125,"grid":129,"attempts":141,"same_week":142,"maker_shows":33,"maker_hidden":171,"reader_version":172,"card":173},"7935138","gopencils","Easily consume REST APIs with Go","title","Show HN: Easily consume REST APIs with Go","https:\u002F\u002Fgithub.com\u002Fbndr\u002Fgopencils","github.com","bndr",1403562436,2014,51,6,624,2272,28,"notable","languages","api client library","library",[24,25,26,27],"go","rest api client","json","golang http","quiet",null,{"positive":31,"neutral":32,"mixed":31,"critical":33},0,1,3,4,{"design":36,"docs":37,"idea":38},{"positive":31,"critical":32},{"positive":31,"critical":32},{"positive":31,"critical":32},[32,31,33,32,32,31],{"problem":29,"audience":41,"pricing":29,"motivation":29,"time_to_build":29,"stack":49,"openness":58,"stage":58,"team_size":58},{"value":42,"source":43,"evidence":44},"Go developers consuming web APIs","inferred",[45],{"id":46,"by":47,"text":48},"7936603","jalfresi","I have some constructive criticism for the author, please take this in the manner that it is intended :) 1) Nothing I see here is restful at all. Please consider changing your…",[50],{"value":51,"source":52,"evidence":53},"Go","commenter",[54],{"id":55,"by":56,"text":57},"7936301","edwinnathaniel","It's interesting to see how project like this gained attention for the HN crowds because it's written in Go while in platform like Java, client-side REST library like JAX-RS is a…","unknown",{"praise":60,"objections":68,"requests":93,"questions":102,"alternatives":118},[61],{"value":62,"source":52,"evidence":63},"Simple and easy to use",[64],{"id":65,"by":66,"text":67},"7936484","mriehl","Looks simple enough, but I simply cannot push myself to using Go with json because the approach feels so static and unnatural. Also note that this library has no tests, which…",[69,77,81,85,89],{"value":70,"source":52,"evidence":71},"Chained method calls hide errors and are unsafe",[72,73],{"id":46,"by":47,"text":48},{"id":74,"by":75,"text":76},"7936887","aksx",">api.Res(\"users\", resp).Id(1).Get() >What happens if the argument passed to api.Res is not \"users\"? Or \"users\" is incorrect? Or if Id 1 doesnt exist? Or you cant use the HTTP…",{"value":78,"source":52,"evidence":79},"Not actually RESTful; misleading name",[80],{"id":46,"by":47,"text":48},{"value":82,"source":52,"evidence":83},"No tests",[84],{"id":65,"by":66,"text":67},{"value":86,"source":52,"evidence":87},"Does not handle network failures or HTTP status codes",[88],{"id":46,"by":47,"text":48},{"value":90,"source":52,"evidence":91},"Go's static typing makes JSON handling feel unnatural",[92],{"id":65,"by":66,"text":67},[94,98],{"value":95,"source":52,"evidence":96},"Document as JSON web API client rather than REST",[97],{"id":46,"by":47,"text":48},{"value":99,"source":52,"evidence":100},"Add error handling",[101],{"id":46,"by":47,"text":48},[103,107],{"value":104,"source":52,"evidence":105},"What happens on invalid resource names or missing IDs",[106],{"id":46,"by":47,"text":48},{"value":108,"source":52,"evidence":109},"Is 'dynamic' an accurate description in Go",[110,114],{"id":111,"by":112,"text":113},"7936032","TylerE","Is creating a new named type, creating a instance, and passing a pointer really what passes for \"dynamic\" in the Go world?",{"id":115,"by":116,"text":117},"7936069","themartorana","There isn't much in Go that is dynamic. This looks to me to be some convenience around commonly consumed patterns applied to normal static struct definitions in Go. Go does have…",[119],{"value":120,"source":52,"evidence":121},"JAX-RS (Java)",[122],{"id":55,"by":56,"text":57},{"comments":31,"answered":31,"key":124},[],{"commenters":15,"max_depth":126,"maker_replies":31,"first_comment_mins":127,"lifespan_hours":128},2,292,11,[130,132,134,136,138,140],[46,31,32,131,47,31],"project\u002Fcritical\u002Fdesign",[74,31,31,133,75,31],"commenter\u002Fneutral\u002Fnone",[55,32,33,135,56,31],"project\u002Fneutral\u002Fnone",[65,126,32,137,66,31],"project\u002Fcritical\u002Fdocs",[111,33,32,139,112,31],"project\u002Fcritical\u002Fidea",[115,33,31,133,116,31],[],[143,147,152,157,162,167],{"id":144,"name":145,"points":146,"category":20},"7937258","Fast.js",323,{"id":148,"name":149,"points":150,"category":151},"7926005","Scholar Ninja",98,"learning_science",{"id":153,"name":154,"points":155,"category":156},"7944540","Hashcash",89,"security_privacy",{"id":158,"name":159,"points":160,"category":161},"7940030","Seed-DB funding visualization",85,"data",{"id":163,"name":164,"points":165,"category":166},"7937476","Checkr.io",79,"web_saas",{"id":168,"name":169,"points":170,"category":166},"7917408","BillForward",73,false,"v2",{"id":174,"name":5,"line":6,"ai":171,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":175,"maker":11,"domain":10,"tier":19,"attempts":31,"strip":176,"url":9,"mix":177,"praise":62,"objection":70,"sub":21},7935138,[24,25,26,27],"103110",[31,32,31,33],1793990906851]