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