2017-06-28 4 views
3

私はSpringブート1.5.3、Spring Data REST、HATEOAS、Hibernateを使用しています。春ブーツdocumentationによると、有益と思われるプロパティがありSpringデータでspring.data.rest.enable-enum-translationを使用する方法REST

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

::のように私のモデルで は、時々私は、列挙型を使用してい

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

私が使用する方法についてのドキュメントを見つけることができませんでしたそれ。私は古い参照を見つけました。私は次のようなものを追加するべきです。

roles.role_admin=Amministratore 

私のmessages.propertiesにあります。それは素晴らしいですが、それは動作しませんし、私のREST応答には、クラスのように表示されているenum値が含まれています。 誰かがSpringのこの機能を使用する正しい方法を私に説明できますか?

答えて

3

この機能を使用するには、プロジェクトの 'resources'フォルダに「rest-messages」リソースバンドルを追加する必要があります。そして、このように、これらのファイルにあなたの列挙型について説明します。

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リファレンスにlittle bit infoもあります。

Restbucks exampleを参照してください。

+0

ありがとうございました!明日私はそれを試みます。この機能は後方に機能しますか? Angularアプリが翻訳された列挙型でこのREST応答を受け取ったとします。 Webアプリケーションが翻訳された列挙型を渡すユーザーを保存するとき、サーバーはそれを理解していますか?ありがとう – drenda

+0

わかりませんが、私はそれが動作すると確信しています。あなたが試してみるときにフィードバックを与えてください... – Cepr0

+0

それは両方向で動作します。ありがとう! – drenda

関連する問題