| | |
| | | private static final Logger logger = Logger.getLogger(StorageHandler.class.getName()); |
| | | |
| | | |
| | | /* |
| | | |
| | | PUT Die angegebene Ressource wird angelegt. Wenn die Ressource bereits |
| | | existiert, wird sie geändert. |
| | | |
| | | Das REST-Muster sieht je Entitaet fuenf Faelle vor (Beispiel Ablageort): |
| | | /* |
| | | Das REST-Muster fuer die Mediazentrale (Beispiel Ablageort): |
| | | |
| | | 1. HTTP GET Ablageort/[Name] - Liefere den Ablageort namens [Name] als JSON |
| | | 1. HTTP GET Ablageort/[Name] - Liefere den Ablageort namens [Name] |
| | | 2. HTTP GET Ablageort/liste/ - Liefere eine Liste mit Namen aller Ablageorte |
| | | Es duerfen also keine Elemente namens "liste" angelegt werden |
| | | Es duerfen keine Elemente namens "liste" angelegt werden |
| | | 3. HTTP GET Ablageort/ - Liefere eine Liste aller Ablageort-Objekte als JSON |
| | | 4. HTTP PUT Ablageort/[Name] - Die angegebene Ressource wird angelegt. Wenn die Ressource |
| | | bereits existiert, wird sie geändert. |
| | | 4. HTTP PUT Ablageort/[Name] - Der Ablageort wird angelegt. Wenn er bereits existiert, |
| | | wird er geändert. (im Falle einer Aenderung des Namens |
| | | muss der alte Name im URL stehen und im Body die Aenderung) |
| | | 5. HTTP DELETE - loesche den Ablageort |
| | | |
| | | |
| | | |
| | | falsch: |
| | | 1. HTTP GET Ablageort/[Name] - Liefere den Ablageort namens [Name] als JSON |
| | | 2. HTTP GET Ablageort/liste/ - Liefere eine Liste mit Namen aller Ablageorte |
| | | 2. HTTP GET Ablageort/ - Liefere eine Liste aller Ablageort-Objekte als JSON |
| | | 3. HTTP PUT - schreibe einen neuen Ablageort auf die Platte |
| | | 4. HTTP POST - schreibe Aenderungen auf die Platte |
| | | 5. HTTP DELETE - loesche den Ablageort |
| | | |
| | | Beispiele: |
| | | |
| | | HTTP GET an /mz/api/store/Ablageort/ |
| | | HTTP GET /mz/api/store/Ablageort/ |
| | | liefert alle Ablageort-Objekte |
| | | |
| | | HTTP GET an /mz/api/store/Ablageort/liste/ |
| | | HTTP GET /mz/api/store/Ablageort/liste/ |
| | | liefert eine Liste der Namen vorhandener Ablageorte |
| | | |
| | | HTTP GET an /mz/api/store/Ablageort/[Name] |
| | | HTTP GET /mz/api/store/Ablageort/[Name] |
| | | liest den Ablageort namens [Name] |
| | | |
| | | HTTP PUT an /mz/api/store/Ablageort/[Name] |
| | | HTTP PUT /mz/api/store/Ablageort/[Name] |
| | | wenn [Name] existiert: Aenderung, sonst neu anlegen |
| | | |
| | | HTTP DELETE an /mz/api/store/Ablageort/[Name] |
| | | HTTP DELETE /mz/api/store/Ablageort/[Name] |
| | | löscht den Ablageort namens [Name] |
| | | |
| | | */ |
| | |
| | | return "Ungueltiger Elementname: " + App.getRs(RB_EP_LISTE); |
| | | } |
| | | } |
| | | |
| | | /* |
| | | private String schreiben(FileStorage fs, String typ, String name, String body, boolean overwrite) { |
| | | Gson gson = new Gson(); |
| | | logger.log(Level.FINE, "type: {0}, token: {1}", new Object[]{typ, fs.typeFromName(typ).getType().getTypeName()}); |
| | | Object o = gson.fromJson(body, fs.typeFromName(typ).getType()); |
| | | if(o instanceof Entity) { |
| | | Object antwortObjekt = fs.write((Entity) o, overwrite); |
| | | if(antwortObjekt instanceof File) { |
| | | File file = (File) antwortObjekt; |
| | | logger.log(Level.FINE, "Datei {0} geschrieben.", file.getAbsolutePath()); |
| | | String filename = file.getName(); |
| | | return typ + FileHandler.STR_BLANK + filename; |
| | | } |
| | | } |
| | | return typ + FileHandler.STR_BLANK + " etwas Seltsames ist passiert."; |
| | | } |
| | | */ |
| | | /* |
| | | private String neu(HttpExchange e) throws IOException { |
| | | return schreiben(e, false); |
| | | } |
| | | |
| | | private String aendern(HttpExchange e) throws IOException { |
| | | return schreiben(e, true); |
| | | } |
| | | */ |
| | | |
| | | /* |
| | | private String schreiben(HttpExchange e, boolean overwrite) throws IOException { |
| | | String path = e.getRequestURI().toString(); |
| | | String[] elems = path.split(App.getRs(Server.RB_SLASH)); |
| | | String type = elems[elems.length - 1]; |
| | | String body = bodyLesen(e); |
| | | String filename = ""; |
| | | FileStorage fs = new FileStorage(App.getInitParameter(App.getRs(App.RB_AP_CONF))); |
| | | Gson gson = new Gson(); |
| | | logger.log(Level.FINE, "type: {0}, token: {1}", new Object[]{type, fs.typeFromName(type).getType().getTypeName()}); |
| | | Object o = gson.fromJson(body, fs.typeFromName(type).getType()); |
| | | if(o instanceof Entity) { |
| | | Object antwortObjekt = fs.write((Entity) o, overwrite); |
| | | if(antwortObjekt instanceof File) { |
| | | File file = (File) antwortObjekt; |
| | | logger.log(Level.FINE, "Datei {0} geschrieben.", file.getAbsolutePath()); |
| | | filename = file.getName(); |
| | | return type + FileHandler.STR_BLANK + filename; |
| | | } |
| | | } |
| | | return type + FileHandler.STR_BLANK + " Operation 'neu' fuer bereits existierende Entitaet."; |
| | | } |
| | | */ |
| | | |
| | | /* |
| | | private String aendern(HttpExchange e) throws IOException { |
| | | return neu(e); // einstweilen wird einfach ueberschrieben |
| | | } |
| | | */ |
| | | |
| | | private boolean loeschen(HttpExchange e) { |
| | | String path = e.getRequestURI().toString(); |
| | | String[] elems = path.split(App.getRs(Server.RB_SLASH)); |