RESTful Web服务:同一资源的不同XML表示
我正在开发一个使用XML格式响应的RESTWeb服务,但我遇到了一些问题(实际上是一个问题) 我的一个资源有一些最终字段,所以一旦创建它们,就不能修改它们。根据这一点,我需要为这个资源提供不同的表示,这取决于我在做什么:创建或修改它 我应该怎么做,为用户提供同一资源的不同XML模式,或者只编写一个XML模式并读取一些字段,或者不依赖于请求的方法RESTful Web服务:同一资源的不同XML表示,xml,rest,xsd,Xml,Rest,Xsd,我正在开发一个使用XML格式响应的RESTWeb服务,但我遇到了一些问题(实际上是一个问题) 我的一个资源有一些最终字段,所以一旦创建它们,就不能修改它们。根据这一点,我需要为这个资源提供不同的表示,这取决于我在做什么:创建或修改它 我应该怎么做,为用户提供同一资源的不同XML模式,或者只编写一个XML模式并读取一些字段,或者不依赖于请求的方法 谢谢你的描述,我不认为这是资源的两种表现形式。我认为它是一种随时间变化的资源 听起来你的问题是关于文档的——根据资源的状态,或者更确切地说,资源是否存在
谢谢你的描述,我不认为这是资源的两种表现形式。我认为它是一种随时间变化的资源 听起来你的问题是关于文档的——根据资源的状态,或者更确切地说,资源是否存在,传达可接受表示的不同规则的最佳方式是什么 如果是这种情况,并且您正在使用W3C XML模式(XSD)文件来记录您的表示,那么我建议使用单个XSD文件,它将允许字段,但将XSD:annotation子项添加到有问题的字段中,并且注意,只有在创建新资源时才允许使用这些字段,不在修改现有资源时 然后,您可以使用相同的XSD来验证这两个用例,并使用几行代码专门检查不可变字段,如果用户试图更改它们,则拒绝请求。这真的很重要;文档很重要,但让系统提供有用的反馈更为重要。如果有人试图更改其中一个不可变字段,则返回“400错误请求”,并在响应正文中包含一个清晰易读的问题解释 我应该做什么,为用户提供相同的XML模式 资源,或者只编写一个XML模式并读取一些字段 取决于我被要求的方法 如果希望重用架构的某些部分,则可以从其他文件导入这些部分,或者在服务器端语言上编写代码以重用它。我认为使用服务器端语言重用字段更好,因为它更灵活