DanGebhardt
Co-founder of @cerebris
array(40) { ["id"]=> string(3) "346" ["title"]=> string(74) "JSON API 1.0 核心开发者自述 | 你所不知道的那些技术细节" ["subtitle"]=> string(0) "" ["status"]=> string(9) "published" ["type"]=> string(6) "normal" ["maxStudentNum"]=> string(1) "0" ["price"]=> string(4) "0.00" ["coinPrice"]=> string(4) "0.00" ["expiryDay"]=> string(1) "0" ["showStudentNumType"]=> string(6) "opened" ["serializeMode"]=> string(4) "none" ["income"]=> string(4) "0.00" ["lessonNum"]=> string(1) "5" ["giveCredit"]=> string(1) "0" ["rating"]=> string(1) "0" ["ratingNum"]=> string(1) "0" ["vipLevelId"]=> string(1) "0" ["categoryId"]=> string(2) "73" ["tags"]=> array(2) { [0]=> string(2) "76" [1]=> string(3) "160" } ["smallPicture"]=> string(49) "public://course/2015/07-03/1345448d382a367601.png" ["middlePicture"]=> string(49) "public://course/2015/07-03/1345448d0d5c409152.png" ["largePicture"]=> string(49) "public://course/2015/07-03/1345448caef2684673.png" ["about"]=> string(1823) "<p><img alt="" src="/files/course/2015/07-03/1345597979fc297611.png?4.9.3" /></p> <p>2013年5月,<a href="" target="_blank">Yehuda Katz</a>完成了<a href="" target="_blank">JSON API</a>技术规范的初稿。事情就发生在RailsConf之后,在那次会议上他和<a href="https://twitter.com/steveklabnik" target="_blank">Steve Klabnik</a>就JSON雏形的技术细节相聊甚欢。在沟通单一Rails服务器库——<a href="https://github.com/rails-api/active_model_serializers" style="line-height:1.6;" target="_blank">ActiveModel::Serializers</a>和单一JavaScript 客户端库——<a href="https://github.com/emberjs/data" style="line-height:1.6;" target="_blank">Ember Data</a>的强烈呼声下,JSON API应运而生(关于这段历史,我在2013年2月第一届EmberCamp上有一个<a href="https://www.youtube.com/watch?v=rfQcmLLE3-w" style="line-height:1.6;" target="_blank">演讲</a><em>,</em>感兴趣的可以去看一看)。</p> <p>打造任何客户端和服务器库都能运用的技术规范格式,Yehuda 和 Steve 在用户的痛点中看到了这件事的价值所在。关键的一点是,这样一种技术规范要能并行发展,而不是限制在最初的应用对象上。结果是,JSON API 同时受到了来自Ember 和Rails 圈里圈外开发者的影响,并发展成为能够迎合更大市场的强有力spec。</p> <p>经过两年的酝酿、四轮备选发布方案、Git上数百个pull request和无数的争议探讨,JSON API 终于推出了 1.0 版本。</p> <p><span style="color:rgb(85,85,85);">在这个 JSON API 生命的关键点,有必要回顾一下它是如何走到1.0,将来又该何去何从?首先,我们来说说JSON API有什么特别之处……</span></p> " ["teacherIds"]=> array(1) { [0]=> string(4) "1229" } ["goals"]=> array(0) { } ["audiences"]=> array(0) { } ["recommended"]=> string(1) "0" ["recommendedSeq"]=> string(1) "0" ["recommendedTime"]=> string(1) "0" ["locationId"]=> string(1) "0" ["address"]=> string(0) "" ["studentNum"]=> string(1) "2" ["hitNum"]=> string(3) "631" ["userId"]=> string(3) "275" ["deadlineNotify"]=> string(4) "none" ["daysOfNotifyBeforeDeadline"]=> string(2) "10" ["createdTime"]=> string(10) "1435732454" ["freeStartTime"]=> string(1) "0" ["freeEndTime"]=> string(1) "0" ["level"]=> string(8) "advanced" }
JSON
JSON API 1.0 核心开发者自述 | 你所不知道的那些技术细节