Grails 中 withFormat 的默认格式 3.x
Default format for withFormat in Grails 3.x
在 Grails 中,这可用于内容协商,尤其适用于实施 API:
withFormat {
xml { ... some code that renders XML }
json { ... some code that renders JSON }
}
现在,如果我需要默认格式,比如说 JSON,“...一些呈现 JSON 的代码”应该执行两次,一次用于 JSON选项和一次用于“*”选项,即 AFAIK“任何其他匹配格式”,这是指定默认格式的一种方式,如:
withFormat {
xml { ... some code that renders XML }
json { ... some code that renders JSON }
"*" { ... some code that renders JSON }
}
我的问题是:
这是将默认格式指定为 JSON 的正确方法吗?
有没有办法让两个选项不重复相同的代码? (我的意思是:json, "*" { ... }
而不是这个...
withFormat {
xml { ... some code that renders XML }
json { ... some code that renders JSON }
"*" { ... some code that renders JSON }
}
使用这个:
withFormat {
xml { ... some code that renders XML }
"*" { ... some code that renders JSON }
}
这样做的一个问题是它是高度冗余的,并且必须在每个控制器方法中完成。建议将此功能移动到 HandlerInterceptor 或使用类似 Beapi API Framework plugin
在 Grails 中,这可用于内容协商,尤其适用于实施 API:
withFormat {
xml { ... some code that renders XML }
json { ... some code that renders JSON }
}
现在,如果我需要默认格式,比如说 JSON,“...一些呈现 JSON 的代码”应该执行两次,一次用于 JSON选项和一次用于“*”选项,即 AFAIK“任何其他匹配格式”,这是指定默认格式的一种方式,如:
withFormat {
xml { ... some code that renders XML }
json { ... some code that renders JSON }
"*" { ... some code that renders JSON }
}
我的问题是:
这是将默认格式指定为 JSON 的正确方法吗?
有没有办法让两个选项不重复相同的代码? (我的意思是:json, "*" { ... }
而不是这个...
withFormat {
xml { ... some code that renders XML }
json { ... some code that renders JSON }
"*" { ... some code that renders JSON }
}
使用这个:
withFormat {
xml { ... some code that renders XML }
"*" { ... some code that renders JSON }
}
这样做的一个问题是它是高度冗余的,并且必须在每个控制器方法中完成。建议将此功能移动到 HandlerInterceptor 或使用类似 Beapi API Framework plugin