RESTful web服务url html vs json

时间:2014-07-10 23:35:35

标签: json node.js web-services rest

要生成用于访问客户数据的网址,请遵循以下规范:

  1. 通过以下网址提供与客户相关的所有JSON数据:wwww.somesite.com/customers
  2. 要创建,更新或删除,请使用www.somesite.com/customers/ url和相应的动词,分别为POST,PUT和DEL
  3. 但是,我想提供一个html页面(最好是www.somesite.com/customers),它通过AJAX调用访问所有JSON数据。

    我是否应根据请求中的标头使用HTML或JSON以相同的网址(www.somesite.com/customers)回复?或者有更好/标准的方法吗?

3 个答案:

答案 0 :(得分:1)

使用标题很难处理。尽管只是为api使用一个可预测的不同URL,但它最好。如:

  • www.somesite.com/customers.json
  • api.somesite.com/customers
  • www.somesite.com/api/customers
  • www.somesite.com/api/v1/customers

答案 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>');
    }
});