2010-06-17 30 views
0

我正在开发一个使用XML格式响应的REST Web服务,并且存在一些问题(真的,一个问题)。REST风格的Web服务:同一资源的不同XML表示方法

我的一个资源有一些最终字段,所以一旦创建它们,它们就不能被修改。据此,我需要根据我在做的事情对此资源进行不同的表示:创建或修改它。

我应该怎么做,为用户提供不同的XML模式为相同的资源或只写一个XML架构和阅读一些领域取决于我被请求的方法?

谢谢

回答

0

从你的描述,我没有看到作为资源的两种表示形式。我认为这是随时间变化的一种资源。

0

听起来像你的问题是关于文档 - 根据资源的状态,或者确切地说,是否存在或不存在,什么是沟通可接受表示的不同规则的最佳方式。

如果是这种情况,并且您正在使用W3C XML Schema(XSD)文件记录您的表示,那么我建议您使用单个XSD文件,该文件允许使用字段,但将xsd:annotation子项添加到字段中问题,并注意那些字段只有在创建新资源时才允许,而不是在修改现有资源时才允许。

然后,您可以使用相同的XSD来验证这两种用例,并有几行代码来专门检查不可变字段,并在用户尝试更改它们时拒绝请求。这非常重要;文件很重要,但是让系统提供有用的反馈更为重要。如果有人试图更改其中一个不可变字段,请返回'400错误请求',并在响应主体中包含清晰的人类可读的问题说明。

0

我应该怎么做,给用户不同的XML的架构对于同 资源或写只是一个XML-Schema和阅读一些领域或不 取决于我被要求我的方法?

如果您想要重用模式的某些部分,那么您可以从其他文件导入这些部分,或者在服务器端语言上编写代码以重用它。我认为使用服务器端语言重新使用字段会更好,因为它更加灵活。