要生成用于访问客户数据的网址,请遵循以下规范:
但是,我想提供一个html页面(最好是www.somesite.com/customers),它通过AJAX调用访问所有JSON数据。
我是否应根据请求中的标头使用HTML或JSON以相同的网址(www.somesite.com/customers)回复?或者有更好/标准的方法吗?
答案 0 :(得分:1)
使用标题很难处理。尽管只是为api使用一个可预测的不同URL,但它最好。如:
答案 1 :(得分:1)
根据REST原则,URL表示资源,响应是资源的表示。
您可以根据客户端指定的条件为同一资源库生成不同的表示形式(JSON或HTML)。这可以通过Accept标头项或Query字符串指定。
答案 2 :(得分:0)
有可能。
如果请求是xhr-Request
,您可以查看请求内部。在express.js中,它位于``req.xhr`。如果确实如此,你可以提供HTML或JSON。
app.get('/customers', function(req, res){
if(req.xhr){
res.type('application/json');
res.send({});
}else{
res.type('text/html');
res.send('<html>...</html>');
}
});