开发自己的REST API

开发REST API

在上一节中,我们演示了如何在koa项目中使用REST。其实,使用REST和使用MVC是类似的,不同的是,提供REST的Controller处理函数最后不调用render()去渲染模板,而是把结果直接用JSON序列化返回给客户端。

使用REST虽然非常简单,但是,设计一套合理的REST框架却需要仔细考虑很多问题。

问题一:如何组织URL
在实际工程中,一个Web应用既有REST,还有MVC,可能还需要集成其他第三方系统。如何组织URL?

一个简单的方法是通过固定的前缀区分。例如,/static/开头的URL是静态资源文件,类似的,/api/开头的URL就是REST API,其他URL是普通的MVC请求。

使用不同的子域名也可以区分,但对于中小项目来说配置麻烦。随着项目的扩大,将来仍然可以把单域名拆成多域名。

问题二:如何统一输出REST
如果每个异步函数都编写下面这样的代码:

// 设置Content-Type:
ctx.response.type = ‘application/json’;
// 设置Response Body:
ctx.response.body = {
products: products
};
很显然,这样的重复代码很容易导致错误,例如,写错了字符串’application/json’,或者漏写了ctx.response.type = ‘application/json’,都会导致浏览器得不到JSON数据。

回忆我们集成Nunjucks模板引擎的方法:通过一个middleware给ctx添加一个ren

你可能感兴趣的:(nodejs教程,前端,java,json)