{"id":7,"date":"2014-10-21T22:41:16","date_gmt":"2014-10-22T05:41:16","guid":{"rendered":"http:\/\/biz197.inmotionhosting.com\/~blogsi8\/2014\/10\/21\/20141021api-development-at-sift-science\/"},"modified":"2019-01-22T18:37:50","modified_gmt":"2019-01-23T02:37:50","slug":"api-development-at-sift-science","status":"publish","type":"post","link":"https:\/\/engineering.sift.com\/api-development-at-sift-science\/","title":{"rendered":"API Development at Sift Science"},"content":{"rendered":"<p>At Sift Science, APIs are incredibly important. We spend a lot of time\u00a0improving upon our existing APIs and thinking about how to design even better ones. A couple of weeks ago at the\u00a0<a href=\"https:\/\/www.meetup.com\/API-Craft-San-Francisco\/events\/205610972\/\">San Francisco API Craft Meetup<\/a>, I gave\u00a0a talk\u00a0on how we built the API that powers our new Sift console.<\/p>\n<p>At its inception, the Sift console was an internal Rails app built for\u00a0investigating model issues. As we made the console accessible to our users, we rewrote it as a single-page JavaScript app driven by a set\u00a0of private, undocumented APIs. For the third iteration of our console, we took an API-driven approach. The new APIs that drive the console are powerful and\u00a0comprehensive enough to allow our users to build their own interfaces\u00a0atop their data. The console is just another consumer of\u00a0these underlying APIs.<\/p>\n<p>Some of the technologies we utilized to build it include:<\/p>\n<ul>\n<li><a href=\"https:\/\/dropwizard.io\">DropWizard<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/mwylde\/slinky\">Slinky<\/a><\/li>\n<li><a href=\"https:\/\/backbonejs.org\">Backbone.js<\/a><\/li>\n<li><a href=\"https:\/\/facebook.github.io\/react\/\">React.js<\/a><\/li>\n<\/ul>\n<p>In my talk, I discussed how we migrated our API and console, as well as\u00a0some of the lessons we learned along the way.<\/p>\n<p>If you missed the talk, you can check it out below! Questions about Sift? Feel free to drop us a line any time.<\/p>\n<p><iframe loading=\"lazy\" src=\"\/\/www.youtube.com\/embed\/vHXcDKK4eGY?feature=player_embedded&amp;t=6722&amp;wmode=opaque&amp;enablejsapi=1\" width=\"854\" height=\"480\" frameborder=\"0\" scrolling=\"no\" allowfullscreen=\"allowfullscreen\"><br \/>\n<\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>At Sift Science, APIs are incredibly important. We spend a lot of time<br \/>improving upon our existing APIs and thinking about how to design even better ones. A couple of weeks ago at the<br \/><a target=\"_blank\" href=\"https:\/\/www.meetup.com\/API-Craft-San-Francisco\/events\/205610972\/\">San Francisco API Craft Meetup<\/a>, I gave&nbsp;a talk&nbsp;on how we built the API that powers our new Sift console.<\/p>","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43],"tags":[3,4],"ppma_author":[131],"class_list":["post-7","post","type-post","status-publish","format-standard","hentry","category-talks","tag-api","tag-code"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>API Development at Sift Science - Sift Engineering Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/engineering.sift.com\/api-development-at-sift-science\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"API Development at Sift Science - Sift Engineering Blog\" \/>\n<meta property=\"og:description\" content=\"At Sift Science, APIs are incredibly important. We spend a lot of timeimproving upon our existing APIs and thinking about how to design even better ones. A couple of weeks ago at theSan Francisco API Craft Meetup, I gave&nbsp;a talk&nbsp;on how we built the API that powers our new Sift console.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/engineering.sift.com\/api-development-at-sift-science\/\" \/>\n<meta property=\"og:site_name\" content=\"Sift Engineering Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-10-22T05:41:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-01-23T02:37:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/engineering.sift.com\/wp-content\/uploads\/2015\/06\/API-DEVELOPMENT-AT-SIFT-SCIENCE.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"900\" \/>\n\t<meta property=\"og:image:height\" content=\"746\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Micah Wylde\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"sifteng\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/engineering.sift.com\/api-development-at-sift-science\/\",\"url\":\"https:\/\/engineering.sift.com\/api-development-at-sift-science\/\",\"name\":\"API Development at Sift Science - Sift Engineering Blog\",\"isPartOf\":{\"@id\":\"https:\/\/engineering.sift.com\/#website\"},\"datePublished\":\"2014-10-22T05:41:16+00:00\",\"dateModified\":\"2019-01-23T02:37:50+00:00\",\"author\":{\"@id\":\"https:\/\/engineering.sift.com\/#\/schema\/person\/423fc55f41d708d384561eaa4a9c126e\"},\"breadcrumb\":{\"@id\":\"https:\/\/engineering.sift.com\/api-development-at-sift-science\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/engineering.sift.com\/api-development-at-sift-science\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/engineering.sift.com\/api-development-at-sift-science\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/engineering.sift.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API Development at Sift Science\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/engineering.sift.com\/#website\",\"url\":\"https:\/\/engineering.sift.com\/\",\"name\":\"Sift Engineering Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/engineering.sift.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/engineering.sift.com\/#\/schema\/person\/423fc55f41d708d384561eaa4a9c126e\",\"name\":\"sifteng\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/engineering.sift.com\/#\/schema\/person\/image\/11bd71da17ee3700c58d026fcc80fc3a\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2809d658dcfdf2f48d7d157f9d2579a9627ace0d9059de3a5ca301f7ca0e4f2a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2809d658dcfdf2f48d7d157f9d2579a9627ace0d9059de3a5ca301f7ca0e4f2a?s=96&d=mm&r=g\",\"caption\":\"sifteng\"},\"sameAs\":[\"https:\/\/engineering.siftscience.com\"],\"url\":\"https:\/\/engineering.sift.com\/author\/sifteng\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"API Development at Sift Science - Sift Engineering Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/engineering.sift.com\/api-development-at-sift-science\/","og_locale":"en_US","og_type":"article","og_title":"API Development at Sift Science - Sift Engineering Blog","og_description":"At Sift Science, APIs are incredibly important. We spend a lot of timeimproving upon our existing APIs and thinking about how to design even better ones. A couple of weeks ago at theSan Francisco API Craft Meetup, I gave&nbsp;a talk&nbsp;on how we built the API that powers our new Sift console.","og_url":"https:\/\/engineering.sift.com\/api-development-at-sift-science\/","og_site_name":"Sift Engineering Blog","article_published_time":"2014-10-22T05:41:16+00:00","article_modified_time":"2019-01-23T02:37:50+00:00","og_image":[{"width":900,"height":746,"url":"https:\/\/engineering.sift.com\/wp-content\/uploads\/2015\/06\/API-DEVELOPMENT-AT-SIFT-SCIENCE.jpg","type":"image\/jpeg"}],"author":"Micah Wylde","twitter_card":"summary_large_image","twitter_misc":{"Written by":"sifteng","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/engineering.sift.com\/api-development-at-sift-science\/","url":"https:\/\/engineering.sift.com\/api-development-at-sift-science\/","name":"API Development at Sift Science - Sift Engineering Blog","isPartOf":{"@id":"https:\/\/engineering.sift.com\/#website"},"datePublished":"2014-10-22T05:41:16+00:00","dateModified":"2019-01-23T02:37:50+00:00","author":{"@id":"https:\/\/engineering.sift.com\/#\/schema\/person\/423fc55f41d708d384561eaa4a9c126e"},"breadcrumb":{"@id":"https:\/\/engineering.sift.com\/api-development-at-sift-science\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/engineering.sift.com\/api-development-at-sift-science\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/engineering.sift.com\/api-development-at-sift-science\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/engineering.sift.com\/"},{"@type":"ListItem","position":2,"name":"API Development at Sift Science"}]},{"@type":"WebSite","@id":"https:\/\/engineering.sift.com\/#website","url":"https:\/\/engineering.sift.com\/","name":"Sift Engineering Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/engineering.sift.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/engineering.sift.com\/#\/schema\/person\/423fc55f41d708d384561eaa4a9c126e","name":"sifteng","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/engineering.sift.com\/#\/schema\/person\/image\/11bd71da17ee3700c58d026fcc80fc3a","url":"https:\/\/secure.gravatar.com\/avatar\/2809d658dcfdf2f48d7d157f9d2579a9627ace0d9059de3a5ca301f7ca0e4f2a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2809d658dcfdf2f48d7d157f9d2579a9627ace0d9059de3a5ca301f7ca0e4f2a?s=96&d=mm&r=g","caption":"sifteng"},"sameAs":["https:\/\/engineering.siftscience.com"],"url":"https:\/\/engineering.sift.com\/author\/sifteng\/"}]}},"authors":[{"term_id":131,"user_id":0,"is_guest":1,"slug":"micah-legacy","display_name":"Micah Wylde","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/90ec308af41f0ea47c7a8a13680b3835ae65f4e9e963a8f308fd4eb2e76c2aaf?s=96&d=mm&r=g","author_category":"","first_name":"Micah","last_name":"Wylde","user_url":"","job_title":"","description":""}],"_links":{"self":[{"href":"https:\/\/engineering.sift.com\/wp-json\/wp\/v2\/posts\/7","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/engineering.sift.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/engineering.sift.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/engineering.sift.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/engineering.sift.com\/wp-json\/wp\/v2\/comments?post=7"}],"version-history":[{"count":0,"href":"https:\/\/engineering.sift.com\/wp-json\/wp\/v2\/posts\/7\/revisions"}],"wp:attachment":[{"href":"https:\/\/engineering.sift.com\/wp-json\/wp\/v2\/media?parent=7"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/engineering.sift.com\/wp-json\/wp\/v2\/categories?post=7"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/engineering.sift.com\/wp-json\/wp\/v2\/tags?post=7"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/engineering.sift.com\/wp-json\/wp\/v2\/ppma_author?post=7"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}