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 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)