2
我的代码是象下面这样:restify.js路线终点冲突
server.get('/currency/:code', currency.find);
server.get('/currency/rates', currency.rate_getall);
每当我试图达到[/速率]端点,服务器会认为我我将参数传递给'/ currency /:code'路由。我怎样才能解决这个问题?谢谢。
Ryan
我的代码是象下面这样:restify.js路线终点冲突
server.get('/currency/:code', currency.find);
server.get('/currency/rates', currency.rate_getall);
每当我试图达到[/速率]端点,服务器会认为我我将参数传递给'/ currency /:code'路由。我怎样才能解决这个问题?谢谢。
Ryan
如果你能我会考虑改变你的休息界面只是一点。
server.get('/currency/:code', currency.find);
server.get('/currency/rates/:type', currency.rate);
它解决您最初的问题,并允许在未来的灵活性,如果你只是想返回率特定货币的方式。
在你的currency.rate
函数中,你可以检查一个id或文字'all'并返回合适的值。
尝试更改订单。这将是一个黑客。更好的解决方案是重新考虑你的API设计。 –
谢谢。我试图使用RegEx,它迄今为止工作。不过,我很好奇,如果有任何其他适当和更好的方法来解决它。谢谢。我使用的RegEx是'server.get('/ currency /:code((?:^ | \ W)(rates)(?:$ | \ W))',currency.find);'。 – Ryan