RESTful服务是否可以为同一资源返回JSON和XML,具体取决于请求标头?

Nit*_*tal 3 java xml rest json restful-architecture

我有一个简单的RESTful方法,它当前返回一个对象的JSON表示.

我的问题更多的是从架构的角度而不是完全技术性的.

是否应该以这样的方式设计RESTful服务,使其同时返回JSON和XML?

据我所知,这是一种不好的做法,应该为此定义单独的资源.一个资源应返回JSON数据和其他一个XML.

我是否正确思考?

Mik*_*ker 21

根据请求,相同的资源可能返回XML或JSON,但它不应同时返回两者.您将根据请求知道要返回哪一个,因此无需生成两者 - 只需生成您将返回的那个.

以下是您可以选择决定返回的方式.按顺序评估,在确定要返回的格式时停止:

  1. 如果已将扩展添加到资源(GET /user/1234.jsonGET /user/1234.xml),请将其用作请求的格式.
  2. 如果设置了Accept标头,请将该标头的值用作请求的格式.
  3. 如果存在请求主体(如POST的情况),并且Content-Type标头指定JSON或XML,请使用它.
  4. 如果以上都不适用,请使用默认格式(通常使用JSON作为默认格式,除非您的客户通常仍在使用XML).