[{"data":1,"prerenderedAt":352},["ShallowReactive",2],{"project-24442294":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":43,"post_text":44,"what":45,"said":47,"maker_in_thread":144,"shape":146,"grid":151,"attempts":314,"same_week":315,"maker_shows":37,"maker_hidden":344,"reader_version":345,"card":346},"24442294","Octo","Generate a serverless API from an SQL query","title","Show HN: Octo – Generate a serverless API from an SQL query","https:\u002F\u002Foctoproject.github.io\u002Focto-cli\u002F","octoproject.github.io","khalidlafi",1599829343,2020,241,58,201,3028,7,"notable","infrastructure","serverless api generator","unknown",[24,25,26,27],"sql to api","serverless api","rest api generator","postgres api","mixed",-0.025,{"positive":31,"neutral":32,"mixed":33,"critical":18},5,8,1,21,{"idea":36,"design":38,"privacy":40,"execution":42},{"positive":33,"critical":37},2,{"positive":33,"critical":39},3,{"positive":41,"critical":33},0,{"positive":41,"critical":33},[41,33,39,41,41,41,41,41,41,41,41,41,41,33,39,33,41,41,41,41,41,39,39,41,41,41,41,41,39,33,39,39,39,39,33,41,41,31,31,31],null,{"problem":44,"audience":44,"pricing":44,"motivation":44,"time_to_build":44,"stack":46,"openness":22,"stage":22,"team_size":22},[],{"praise":48,"objections":65,"requests":80,"questions":88,"alternatives":104},[49],{"value":50,"source":51,"evidence":52},"Positive reactions to the project and its logo","commenter",[53,57,61],{"id":54,"by":55,"text":56},"24443583","cube2222","Looks great! If you like this, check out OctoSQL[0]... Also in Go... Though OctoSQL lets you query multiple databases \u002F files \u002F event streams like kafka using SQL from your…",{"id":58,"by":59,"text":60},"24443424","rimkms","Logo is looking good , gj",{"id":62,"by":63,"text":64},"24443403","amani92","Very impressive, Great job.",[66,73],{"value":67,"source":51,"evidence":68},"Tightly coupling clients to the database schema makes refactoring hard",[69],{"id":70,"by":71,"text":72},"24449407","hn_throwaway_99","I fear that all of these \"expose your DB as an API\" tools like this, Postgraphile, Hasura, etc. are going to set up folks for a world of hurt down the road. Tightly coupling your…",{"value":74,"source":51,"evidence":75},"Unclear who needs an API for a raw SQL query",[76],{"id":77,"by":78,"text":79},"24443637","akie","Perhaps I'm old, but who needs an API for an SQL query? I'm not sure I understand the use case, or the advantage of something like this over a regular API call to a backend which…",[81],{"value":82,"source":51,"evidence":83},"Support for GROUP BY queries",[84],{"id":85,"by":86,"text":87},"24449536","revskill","Do u know any similar tool wwhich supports group by query ?",[89,96],{"value":90,"source":51,"evidence":91},"Can environment variables be passed into the database connection?",[92],{"id":93,"by":94,"text":95},"24443266","o1lab","Interesting concept and quite liked the playful logo. Can we pass in env variables to db connection ? We are in similar space, we take input params of db and generate CRUD apis…",{"value":97,"source":51,"evidence":98},"Why expose an API when clients could connect to the database directly?",[99,100],{"id":77,"by":78,"text":79},{"id":101,"by":102,"text":103},"24445734","alangibson","I think the point he was making is: why the API if you just want to talk to the db? You can connect to a SQL db over the network and protect the data with views and stored…",[105,116,126,130,137],{"value":106,"source":51,"evidence":107},"PostgREST",[108,112],{"id":109,"by":110,"text":111},"24442526","ForHackernews","Looks vaguely similar to http:\u002F\u002Fpostgrest.org\u002F",{"id":113,"by":114,"text":115},"24444160","CuriouslyC","With postgrest you can add stored procedures as rest rpc calls, and you can always roll a microservice for more advanced stuff. In practice these sorts of auto-api tools make a…",{"value":117,"source":51,"evidence":118},"PostGraphile",[119,123],{"id":120,"by":121,"text":122},"24442764","lukeramsden","I can't speak for this project specifically but for some context, Postgraphile's way of solving this, as it only supports Postgres, is to use Postgres's Row Level Security…",{"id":124,"by":121,"text":125},"24443575","Postgraphile allows you to write plugins to arbitrarily extend (GraphQL) schema and wrap resolvers, which is useful for things like interfacing with external APIs etc. It works…",{"value":127,"source":51,"evidence":128},"Hasura",[129],{"id":70,"by":71,"text":72},{"value":131,"source":51,"evidence":132},"Strapi",[133],{"id":134,"by":135,"text":136},"24446627","henryfjordan","This is not dis-similar to what Strapi.io does, although I don't think they realize that's a big selling point from their marketing materials. With strapi you configure your DB…",{"value":138,"source":51,"evidence":139},"DreamFactory",[140],{"id":141,"by":142,"text":143},"24443799","chadhutchins10","DreamFactory is basically a paid service for this sort of thing. They support something like 20 types of databases (among many other data sources). They have a lot of features…",{"comments":41,"answered":41,"key":145},[],{"commenters":147,"max_depth":148,"maker_replies":41,"first_comment_mins":149,"lifespan_hours":150},45,6,19,38,[152,156,160,163,167,168,169,173,176,179,182,183,187,190,193,195,199,202,204,208,211,215,217,220,222,224,227,229,231,233,236,238,239,242,243,246,249,252,256,258,261,263,264,267,271,274,276,279,283,287,289,291,294,298,301,303,306,310],[153,41,41,154,155,41],"24442876","other\u002Fneutral\u002Fnone","eatonphil",[157,41,33,158,159,41],"24443484","project\u002Fcritical\u002Fidea","MuffinFlavored",[161,41,39,162,155,41],"24443526","project\u002Fneutral\u002Fidea",[164,41,41,165,166,41],"24443561","commenter\u002Fneutral\u002Fnone","BlackCherry",[124,41,41,154,121,41],[141,41,41,154,142,41],[170,41,41,171,172,41],"24443952","other\u002Fneutral\u002Fdesign","robmccoll",[174,41,41,165,175,41],"24444063","xgenecloud",[177,41,41,154,178,41],"24443969","jon-wood",[180,41,41,154,181,41],"24444087","FinalDestiny",[113,41,41,154,114,41],[184,41,41,185,186,41],"24457864","other\u002Fneutral\u002Fprivacy","rapind",[188,41,41,154,189,41],"24448811","jjeaff",[191,41,41,154,192,41],"24449631","manigandham",[134,41,41,194,135,41],"other\u002Fpositive\u002Fidea",[196,41,41,197,198,41],"24448607","other\u002Fpositive\u002Fnone","RileyJames",[200,41,41,154,201,41],"24447624","jdc",[203,41,41,154,155,41],"24447838",[205,33,33,206,207,41],"24442748","project\u002Fcritical\u002Fdesign","Trisell",[209,33,33,206,210,41],"24442817","stingraycharles",[212,37,39,213,214,41],"24442680","project\u002Fneutral\u002Fprivacy","Glyptodon",[120,37,33,216,121,41],"project\u002Fcritical\u002Fprivacy",[218,37,41,154,219,41],"24443588","awb",[221,37,41,165,121,41],"24444038",[223,37,41,165,219,41],"24447892",[225,37,41,154,226,41],"24444166","ecf",[228,37,41,154,121,41],"24444686",[230,37,41,165,226,41],"24445616",[232,37,41,165,121,41],"24445979",[234,37,41,154,235,41],"24449622","brycelarkin",[237,37,39,213,155,41],"24443007",[77,39,33,158,78,41],[240,39,31,241,142,41],"24443825","project\u002Fpositive\u002Fidea",[101,39,41,165,102,41],[244,39,41,165,245,41],"24445948","RussianCow",[247,39,41,154,248,41],"24446406","chatmasta",[250,39,41,154,251,41],"24444191","mritchie712",[253,39,41,254,255,41],"24445718","other\u002Fneutral\u002Fidea","sixdimensional",[54,257,41,154,55,41],4,[259,257,41,197,260,41],"24446094","jhoechtl",[262,257,41,154,55,41],"24446655",[109,31,39,162,110,41],[265,31,33,266,121,41],"24442730","project\u002Fcritical\u002Fexecution",[268,148,39,269,270,41],"24443595","project\u002Fmixed\u002Fprivacy","alexellisuk",[272,18,41,154,273,41],"24445323","mitjam",[93,32,39,275,94,41],"project\u002Fneutral\u002Fexecution",[277,32,39,275,278,41],"24445331","amal_kh5",[280,281,41,154,282,41],"24443066",9,"alexzender",[284,285,39,162,286,41],"24445447",10,"bobbywilson0",[70,288,33,206,71,41],11,[290,288,41,165,235,41],"24449614",[292,288,41,165,293,41],"24449715","TylerE",[295,296,41,154,297,41],"24450183",12,"modarts",[58,299,31,300,59,41],13,"project\u002Fpositive\u002Fdesign",[85,302,39,275,86,41],14,[62,304,31,305,63,41],15,"project\u002Fpositive\u002Fnone",[307,308,31,305,309,41],"24442469",16,"WrtCdEvrydy",[311,312,31,305,313,41],"24443381",17,"ahmadbana",[],[316,320,325,330,335,339],{"id":317,"name":318,"points":16,"category":319},"24428206","Eiten","web_saas",{"id":321,"name":322,"points":323,"category":324},"24493248","Cortex license plate reader",190,"ai",{"id":326,"name":327,"points":328,"category":329},"24485447","jazzit",162,"dev_tools",{"id":331,"name":332,"points":333,"category":334},"24476641","Lofimusic.app",136,"consumer_social",{"id":336,"name":337,"points":338,"category":334},"24478149","Lag",129,{"id":340,"name":341,"points":342,"category":343},"24432939","Sequence",125,"finance_crypto",false,"v2",{"id":347,"name":5,"line":6,"ai":344,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":348,"top":18,"kw":349,"maker":11,"domain":10,"tier":19,"attempts":41,"strip":350,"url":9,"mix":351,"praise":50,"objection":67,"sub":21},24442294,-0.02,[24,25,26,27],"0130000000000131000003300000313333100555",[31,32,33,18],1794036595831]