2016-04-02 8 views
1

イム開発Jersey2 RESTfulなサービスがJersey2レスポンスのフィールドを除外する

Jersey2 v2.22.2 + Spring3のv3.2.16 + JAX-RS v2.0.1の

@Path("/v1/games") 
public class GameServiceV1 implements IGameServiceV1 { 

    @Autowired 
    GameDAO gameDao; 

    @Autowired 
    CompanyDAO companyDao; 

    @Autowired 
    DMapper mapper; 

    @Override 
    @GET 
    @Produces({ MediaType.APPLICATION_JSON }) 
    public List<GameDTO> getGamesByCity(@QueryParam("city") String cityID, @QueryParam("template") String template) 
      throws EscapeitorException { 

     List<Company> companies = companyDao.getCompaniesByCityId(cityID); 
     List<GameDTO> games = putCompaniesWithinGames(companies); 
     return games; 
    } 

私は@QueryParamテンプレートを受け取った場合= "まとめ" GameDTOの応答フィールドをいくつか除外する必要があります。例えば

GET /休憩/ V1 /ゲーム都市= 1がリターンである必要があります?しかし

[ 
    { 
    "id":"1", 
    "name":"Zombie Lab", 
    "company":"2", 
    "description":"Laboratorio zombie des", 
    "story":"historia", 
    "players":"2-5", 
    "length":60, 
    "mode":"Team", 
    "price":15.0, 
    "web":"http://zombielab.com/", 
    "image":null, 
    }] 

GET /休憩/ V1 /ゲーム都市= 1? ? テンプレート=要約は返さなければなりません。

[ 
    { 
    "id":"1", 
    "name":"Zombie Lab", 
    "description":"Laboratorio zombie des", 
    "web":"http://zombielab.com/", 
    }] 

どのように私はフィールドを除外することができますか?

+0

http://stackoverflow.com/a/36175349/1426227 –

答えて

0

Spring Data RESTのprojectionsをご覧ください。基本的には、DAO/DTOフィールドのサブセット(投影)を定義することができます。

+0

weroありがとうございます。それは有用かもしれないが、私は春のデータの残りを使用していない – sebascastillo