1.课程简介

很高兴有人能看到这篇博客!我希望你已经做好心理准备,在这里我们将从0开始构建REST API。这不是一件简单的事情:我们接下来要做很多事情,不仅仅是coding还包括去理清一些理论知识。但我向你保证,你会为你付出努力而感到高兴。



接下来,我们会学习REST的一些理论并遵循 best practices 去开发,但也不会墨守陈规。因为如果你固执于太多的条条框框,就可能会被这些繁文缛节所困扰。构建一个完美的RESTful API是不太可能的,这反而会引起更多的麻烦。



因此,一个友好的API更符合实际,我们会遵循REST的最佳部分,而当我们违规或纠结时会告诉你。我们不会在意那些细节。不,这只不过是在攻击API中那些丑陋的地方,比如如何定义方法以及文档应该保存哪里,为什么等等。



开发项目 Resources and Links

项目?代码大战( Code Battles):一个超级牛逼的网站,程序员与项目进行着殊死搏斗。当你注册之后,你可以创建一个程序员,并为他选择头像。



REST的思想在于资源(resources)。好,我现在说的是资源(resource)!一定要清醒。这对REST是非常重要的,这里醉了的话,你将通不过第二章。表示法(representations)同样如此。



你可以对这个程序员resource进行某些操作,比如充电。基于运气因素,这可能会增加或减少程序员的等级,接下来还可以去战斗,和项目去进行战斗,项目又是一个resource。我们的程序员终究会取得战斗的胜利,战斗同样也是一个resource。



接下来,我将解释下他们明明看起来很自然,而要说他是资源(resource)。



我们项目的计划是创建一个API允许HTTP客户端可以完成上述这些操作甚至更多。但是创建和编辑程序员的请求地址是什么样子?客户端以JSON形式把数据发送给我们,我们是不是也应该以JSON返回数据?我们怎么样验证错误,进行查询的url又如何定义比如程序员列表和程序员详情HTTP,那么HTTP methods 和状态码呢?我们怎么把这些都记录下来呢?客户端怎么知道创建程序员需要哪些字段?通过哪个URL去和项目战斗?