[{"data":1,"prerenderedAt":192},["ShallowReactive",2],{"project-2242162":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":27,"sentiment":28,"stance_mix":29,"scored_comments":33,"aspects":34,"strip":38,"post_text":39,"what":40,"said":63,"maker_in_thread":131,"shape":134,"grid":138,"attempts":154,"same_week":155,"maker_shows":33,"maker_hidden":184,"reader_version":185,"card":186},"2242162","SnapBill API","A Browse-able RESTish API","title","Show HN: A Browse-able RESTish API","http:\u002F\u002Fdevelopers.snapbill.com\u002F2011\u002F02\u002Fa-browseable-restish-api\u002F","developers.snapbill.com","qixxiq",1298218318,2011,19,8,510,1097,47,"shown","web_saas","billing api","api",[24,25,26,21],"browsable api","restful api","api discovery","roasted",-0.462,{"positive":30,"neutral":30,"mixed":31,"critical":32},0,1,4,5,{"design":35,"docs":37},{"positive":30,"critical":36},3,{"positive":30,"critical":31},[31,31,30,31,30,36,30,31],null,{"problem":41,"audience":52,"pricing":39,"motivation":57,"time_to_build":39,"stack":61,"openness":62,"stage":62,"team_size":62},{"value":42,"source":43,"evidence":44},"Lets developers explore and use an API directly through a web browser by limiting interactions to GET and POST.","maker",[45,49],{"id":46,"by":47,"text":48},"2242516","nbpoole","To quote the blog post: \"The reason for not supporting the DELETE\u002FPUT methods is quite simple: by reducing the possible interactions to what a standard browser performs…",{"id":50,"by":11,"text":51},"2242635","The main reason at the end of the day is to land up with an API that is: a. Fully browse-able with standard web browsers. b. Acts in the exact same way with a browser as it does…",{"value":53,"source":54,"evidence":55},"Developers integrating with the SnapBill API.","inferred",[56],{"id":50,"by":11,"text":51},{"value":58,"source":43,"evidence":59},"To make the API fully browsable with standard web browsers and behave the same for browsers as for other clients.",[60],{"id":50,"by":11,"text":51},[],"unknown",{"praise":64,"objections":73,"requests":101,"questions":112,"alternatives":125},[65],{"value":66,"source":67,"evidence":68},"Discoverability via browser is appreciated, but the design needs clearer documentation.","commenter",[69],{"id":70,"by":71,"text":72},"2242701","jsarch","FWIW, this comment: \"The api design functions on the simple idea of having a \"GET\" request act as a discovery mechanism while \"POST\" requests perform operations and searches --…",[74,85,90,94],{"value":75,"source":67,"evidence":76},"Overloads GET and POST instead of using standard verbs, making it un-RESTful.",[77,81],{"id":78,"by":79,"text":80},"2242628","numix","I know that the meaning of REST has been diluted a lot, but this mostly RPC with pretty URLs. I don't understand why they don't support PUT and DELETE. They are already using…",{"id":82,"by":83,"text":84},"2242612","hammerdr","I'm more questioning why they thought that was a good idea when there are some drawbacks to overloading GET and some known ways[1] to work around browser limitations of…",{"value":86,"source":67,"evidence":87},"Browsing GET returns a form rather than a resource list, which is unexpected.",[88,89],{"id":78,"by":79,"text":80},{"id":82,"by":83,"text":84},{"value":91,"source":67,"evidence":92},"Doesn't support PUT or DELETE, despite jQuery being available for them.",[93],{"id":78,"by":79,"text":80},{"value":95,"source":67,"evidence":96},"Unclear what problem it solves; good documentation would be better.",[97],{"id":98,"by":99,"text":100},"2242849","jessedhillon","What problem is this solving? As a developer I don't want to click around in a web browser to see what I'm able to do at a particular API end point. I want good documentation to…",[102,106],{"value":103,"source":67,"evidence":104},"Document that GET is for discovery and POST for operations.",[105],{"id":70,"by":71,"text":72},{"value":107,"source":67,"evidence":108},"Use OPTIONS for discovery instead of overloading verbs.",[109],{"id":110,"by":83,"text":111},"2242466","Why not just use the OPTIONS verb? You're overloading verbs in order to make your API discoverable. Discoverability is great but there's a supported (and standard) way of…",[113,117],{"value":114,"source":67,"evidence":115},"What problem does browsability solve compared with good docs?",[116],{"id":98,"by":99,"text":100},{"value":118,"source":67,"evidence":119},"Why not use the OPTIONS verb for discoverability?",[120,121],{"id":110,"by":83,"text":111},{"id":122,"by":123,"text":124},"2245714","kaylarose","I'd never heard of OPTIONS before. Do you have any links, besides [1], to more resource on it? Is this a common tactic, or is there a more standard way to add \"discover-ability\"…",[126],{"value":127,"source":67,"evidence":128},"OPTIONS verb for discoverability; HTTP-standard REST design.",[129,130],{"id":110,"by":83,"text":111},{"id":122,"by":123,"text":124},{"comments":31,"answered":30,"key":132},[133],{"id":50,"text":51},{"commenters":135,"max_depth":33,"maker_replies":31,"first_comment_mins":136,"lifespan_hours":137},7,101,23,[139,141,142,144,145,147,149,151],[78,30,31,140,79,30],"project\u002Fcritical\u002Fdesign",[110,31,31,140,83,30],[46,31,30,143,47,30],"commenter\u002Fneutral\u002Fdesign",[82,31,31,140,83,30],[50,31,30,146,11,31],"maker\u002Fneutral\u002Fdesign",[70,31,36,148,71,30],"maker\u002Fmixed\u002Fdocs",[122,31,30,150,123,30],"commenter\u002Fneutral\u002Fnone",[98,152,31,153,99,30],2,"project\u002Fcritical\u002Fdocs",[],[156,161,166,171,175,179],{"id":157,"name":158,"points":159,"category":160},"2249390","HackerBooks.com",351,"learning_science",{"id":162,"name":163,"points":164,"category":165},"2243650","Breakup Notifier",264,"consumer_social",{"id":167,"name":168,"points":169,"category":170},"2250526","Remote Jobs",217,"productivity",{"id":172,"name":173,"points":174,"category":170},"2233700","Kleinman resume (chalkboard resume on Facebook)",141,{"id":176,"name":177,"points":178,"category":20},"2232951","Y Combinator shirt",80,{"id":180,"name":181,"points":182,"category":183},"2242284","FasterDev",79,"dev_tools",false,"v2",{"id":187,"name":5,"line":6,"ai":184,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":188,"top":18,"kw":189,"maker":11,"domain":10,"tier":19,"attempts":30,"strip":190,"url":9,"mix":191,"praise":66,"objection":75,"sub":21},2242162,-0.46,[24,25,26,21],"11010301",[30,30,31,32],1793990870771]