我有一个简单的RESTful方法,它当前返回一个对象的JSON表示.
我的问题更多的是从架构的角度而不是完全技术性的.
是否应该以这样的方式设计RESTful服务,使其同时返回JSON和XML?
据我所知,这是一种不好的做法,应该为此定义单独的资源.一个资源应返回JSON数据和其他一个XML.
我是否正确思考?
根据请求,相同的资源可能返回XML或JSON,但它不应同时返回两者.您将根据请求知道要返回哪一个,因此无需生成两者 - 只需生成您将返回的那个.
以下是您可以选择决定返回的方式.按顺序评估,在确定要返回的格式时停止:
如果已将扩展添加到资源(GET /user/1234.json
或GET /user/1234.xml
),请将其用作请求的格式.
如果设置了Accept标头,请将该标头的值用作请求的格式.
如果存在请求主体(如POST的情况),并且Content-Type标头指定JSON或XML,请使用它.
如果以上都不适用,请使用默认格式(通常使用JSON作为默认格式,除非您的客户通常仍在使用XML).