小编典典

如何在Spring Data REST中使用spring.data.rest.enable-enum-translation

spring-boot

我正在使用Spring Boot 1.5.3,Spring Data REST,HATEOAS,Hibernate。在我的模型中,有时会使用如下枚举:

    public enum Roles {
    ROLE_ADMIN, ROLE_USER, ROLE_MANAGER, ROLE_TECH
}

根据Spring Boot 文档,有一个似乎有用的属性:

# DATA REST (RepositoryRestProperties)
spring.data.rest.enable-enum-translation=true

我没有找到有关如何使用它的文档。我发现旧的参考文献似乎应该添加以下内容:

roles.role_admin=Amministratore

在我的messages.properties中。那会很酷,但是不起作用,我的REST回复包含类中显示的枚举值,没有任何翻译。有人可以向我解释使用Spring的此功能的正确方法吗?


阅读 354

收藏
2020-05-30

共1个答案

小编典典

要使用此功能,您必须向项目的“资源”文件夹中添加“剩余消息”资源束。然后像下面这样在这些文件中描述您的枚举:

com.example.myproject.myapp.Roles.ROLE_ADMIN=Amministratore
com.example.myproject.myapp.Roles.ROLE_USER=Utente

如果您有嵌套枚举,则必须将它们和带有“ $”符号的父类加入:

com.example.myproject.myapp.User$Roles.ROLE_ADMIN=Amministratore
com.example.myproject.myapp.User$Roles.ROLE_USER=Utente

您可以用相同的方式描述链接:

_links.user.title=Utente
_links.users.title=Lista utenti

然后,您将得到如下内容:

"_links": {
    "user": {
        "href": "http://localhost:8080/api/users/1",
        "title": "Utente"
    }
}

"users": {
    "href": "http://localhost:8080/api/users{?page,size,sort}",
    "templated": true,
    "title": "Lista utenti"
}

也有点点信息中关于这一问题的SDR参考。

请参阅Restbucks示例

2020-05-30