2016-11-05 48 views
0

我们最近开始将Node.js用于我们的API服务器而不是Java。除了Node.js提供的所有好东西之外,我最想念的一件事是为API提供适当的响应对象。拥有一个固定的响应结构,包含node.js和Express

由于Javascript是动态类型化的语言,因此可以在返回响应时即时创建对象。这与Java相反,我可以有一个类,它的一个实例将在响应中被序列化。我随时可以查找这个类来确定API的响应。

Node.Js/Javascript中是否有这样的设计模式。我们希望我们的API能够严格符合这种模板对象。

+0

你可以看看Swagger有一个方法来记录和验证response \ request对象。或者,您可以使用Typescript进行编译时类型检查 –

回答

2

你可以自己做。

例如,如果您使用的是ES6,您可以拥有各种错误和响应模块,并在创建这些响应的类中执行您自己的验证。

例如,

// sample-response.js 

class SampleResponse { 
    constructor(message) { 
    // validate `message` somehow 

    this.data = message 
    } 
} 

module.exports = { 
    SampleResponse 
} 

然后无论你正在构建你的HTTP接口,您可以发送回你想要哪个响应(例如,使用快递):

res.send(new SampleResponse(message)) 

同错误等。你不一定会因JavaScript缺乏类型而受到限制,你只需要以不同的方式执行。

如果你不使用ES6,你可以做这样的事情:

module.exports = { 
    SampleResponse: function(message) { 
    // do some validation 

    return { data: message }; // or whatever you want 
    } 
}; 
1
  1. 您可以使用流量或打字稿你的代码。

  2. 您可以使用合同测试工具。合同的取决于你的REST API:

我的choise是使用打字稿和阿宝+肾错构瘤。

相关问题