Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/rest/QueryService.java @ 827:5bdd1631a451
!!!CAUTION!!! changed services path!
REST servies now listening on /rest/*
Importer/Exporter now listening on /data/$FORMAT/*
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Fri, 18 Dec 2015 17:47:14 +0100 |
parents | 5155b0b375cd |
children |
rev | line source |
---|---|
428
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
3 * |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU GPL (v>=3) |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
6 * the documentation coming with IMIS-Labordaten-Application for details. |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
7 */ |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
8 package de.intevation.lada.rest; |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
9 |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
10 import javax.enterprise.context.RequestScoped; |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
11 import javax.ws.rs.GET; |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
12 import javax.ws.rs.Path; |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
13 import javax.ws.rs.Produces; |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
14 |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
15 import de.intevation.lada.query.QueryTools; |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
16 import de.intevation.lada.util.rest.Response; |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
17 |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
18 |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
19 /** |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
20 * REST-Service for preconfigured queries. |
628
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
21 * <p> |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
22 * The services produce data in the application/json media type. |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
23 * All HTTP methods use the authorization module to determine if the user is |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
24 * allowed to perform the requested action. |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
25 * A typical response holds information about the action performed and the data. |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
26 * <pre> |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
27 * <code> |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
28 * { |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
29 * "success": [boolean]; |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
30 * "message": [string], |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
31 * "data":[{ |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
32 * "id": [string], |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
33 * "name": [string], |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
34 * "description": [string], |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
35 * "sql": [string], |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
36 * "filters": [array], |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
37 * "results": [array] |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
38 * }], |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
39 * "errors": [object], |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
40 * "warnings": [object], |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
41 * "readonly": [boolean], |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
42 * "totalCount": [number] |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
43 * } |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
44 * </code> |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
45 * </pre> |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
46 * |
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
47 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> |
428
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
48 */ |
827
5bdd1631a451
!!!CAUTION!!! changed services path!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
813
diff
changeset
|
49 @Path("rest/query") |
428
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
50 @RequestScoped |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
51 public class QueryService { |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
52 |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
53 /** |
636
cdcb7a141529
Added new query config for messprogramme and serve it via QueryService.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
628
diff
changeset
|
54 * Request all configured probe queries. |
428
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
55 */ |
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
56 @GET |
636
cdcb7a141529
Added new query config for messprogramme and serve it via QueryService.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
628
diff
changeset
|
57 @Path("/probe") |
628
21a49dc9984d
Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents:
428
diff
changeset
|
58 @Produces("application/json") |
636
cdcb7a141529
Added new query config for messprogramme and serve it via QueryService.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
628
diff
changeset
|
59 public Response getProbe() { |
cdcb7a141529
Added new query config for messprogramme and serve it via QueryService.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
628
diff
changeset
|
60 return new Response(true, 200, QueryTools.getProbeConfig()); |
cdcb7a141529
Added new query config for messprogramme and serve it via QueryService.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
628
diff
changeset
|
61 } |
cdcb7a141529
Added new query config for messprogramme and serve it via QueryService.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
628
diff
changeset
|
62 |
cdcb7a141529
Added new query config for messprogramme and serve it via QueryService.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
628
diff
changeset
|
63 /** |
cdcb7a141529
Added new query config for messprogramme and serve it via QueryService.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
628
diff
changeset
|
64 * Request all configured messprogramm queries. |
cdcb7a141529
Added new query config for messprogramme and serve it via QueryService.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
628
diff
changeset
|
65 */ |
cdcb7a141529
Added new query config for messprogramme and serve it via QueryService.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
628
diff
changeset
|
66 @GET |
cdcb7a141529
Added new query config for messprogramme and serve it via QueryService.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
628
diff
changeset
|
67 @Path("/messprogramm") |
cdcb7a141529
Added new query config for messprogramme and serve it via QueryService.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
628
diff
changeset
|
68 @Produces("application/json") |
cdcb7a141529
Added new query config for messprogramme and serve it via QueryService.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
628
diff
changeset
|
69 public Response getMessprogramm() { |
cdcb7a141529
Added new query config for messprogramme and serve it via QueryService.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
628
diff
changeset
|
70 return new Response(true, 200, QueryTools.getMessprogrammConfig()); |
428
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
71 } |
813
5155b0b375cd
Added stammdaten queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
636
diff
changeset
|
72 |
5155b0b375cd
Added stammdaten queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
636
diff
changeset
|
73 /** |
5155b0b375cd
Added stammdaten queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
636
diff
changeset
|
74 * Request all configured stammdaten queries. |
5155b0b375cd
Added stammdaten queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
636
diff
changeset
|
75 */ |
5155b0b375cd
Added stammdaten queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
636
diff
changeset
|
76 @GET |
5155b0b375cd
Added stammdaten queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
636
diff
changeset
|
77 @Path("/stammdaten") |
5155b0b375cd
Added stammdaten queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
636
diff
changeset
|
78 @Produces("application/json") |
5155b0b375cd
Added stammdaten queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
636
diff
changeset
|
79 public Response getStammdaten() { |
5155b0b375cd
Added stammdaten queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
636
diff
changeset
|
80 return new Response(true, 200, QueryTools.getStammdatenConfig()); |
5155b0b375cd
Added stammdaten queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
636
diff
changeset
|
81 } |
428
c5ae1eb3ff92
Added REST service for queries.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
82 } |