Benutzer-Werkzeuge

Webseiten-Werkzeuge


rest_api

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
rest_api [2019/04/04 07:37] – [Abruf und Rückgabe einer E-Mail] lwsystemsrest_api [2025/06/26 14:03] (aktuell) – [Suchanfrage nach einer Message-ID] lwsystems
Zeile 1: Zeile 1:
- 
- 
 ====== REST API ====== ====== REST API ======
  
-Das REST API bietet ausschließlich eine generelle Authentisierung ohne Zugriffssteuerung für einzelne Benutzer.+Das REST API bietet ausschließlich eine generelle Authentisierung ohne Zugriffssteuerung für einzelne Benutzer. Auf das API kann über das [[Rest Interface]] zugegriffen werden
 Es dient ausschließlich dazu, Requests der [[rest_interface#frontents|REST Frontends]] zu verarbeiten.  Es dient ausschließlich dazu, Requests der [[rest_interface#frontents|REST Frontends]] zu verarbeiten. 
 ===== Durchführung einer Suchanfrage  ===== ===== Durchführung einer Suchanfrage  =====
Zeile 121: Zeile 119:
 ==== Suche in einem Zeitraum  ==== ==== Suche in einem Zeitraum  ====
  
-<code>?archive=BennoContainer&amp;query=((Sender:*hansen-und-meyer*)) AND (Date:[201308231020 TO 201308271605]))</code>+<code>?archive=BennoContainer&query=((Sender:*hansen-und-meyer*) AND (Date:[201308231020 TO 201308271605]))</code>
  
 Hier werden die E-Mails im Zeitraum zwischen 23.08.2013 10:20 und dem 27.08.2013 um 16:05 gesucht. Hier werden die E-Mails im Zeitraum zwischen 23.08.2013 10:20 und dem 27.08.2013 um 16:05 gesucht.
  
-//Anmerkung//: Ein Bereich kann als **[**inklusiv**]** oder **{**exklusiv**}** formatiert definiert werden. 
  
-  * ''Date:[197001010000 TO 201512312400]'' - inklusiver Bereich, Ergebnisse bis zum 31.12.2015 24:00 
-  * ''Date:{197001010000 TO 201512312400}'' - exklusiver Bereich, Ergebnisse nach dem 31.12.2015 24:00 
 ==== Suchanfrage mit Filterung  ==== ==== Suchanfrage mit Filterung  ====
  
Zeile 142: Zeile 137:
  
 In dieser Suchanfrage werden alle E-Mails im Standard-Container gesucht, die von Absenderadressen stammen, in denen das Literal „hansen-und-meyer“ vorkommt ODER deren Empfängeradressen das Literal „vertrieb@“ enthalten.  In dieser Suchanfrage werden alle E-Mails im Standard-Container gesucht, die von Absenderadressen stammen, in denen das Literal „hansen-und-meyer“ vorkommt ODER deren Empfängeradressen das Literal „vertrieb@“ enthalten. 
 +
 +==== Suche nach Header Message-ID  ====
 +
 +<code>?archive=BennoContainer&query=HEADER-MESSAGE-ID=HEADER-MESSAGE-ID:4AC1F407.321@lw-systems.net</code>
 +
 +In dieser Suchanfrage wird nach der E-Mail mit dem Header //Message-ID: 4AC1F407.321@lw-systems.net// gesucht.
  
 ===== Suchkriterien  ===== ===== Suchkriterien  =====
Zeile 155: Zeile 156:
 Der API-Call zum Zugriff auf eine archivierte E-Mail dient dazu, eine E-Mail (incl. etwaiger Attachements) aus dem Archiv zu holen. Da jede E-Mail im Archiv eindeutig identifiziert ist, erfolgt der Zugriff über diesen eindeutigen Identifyer.  Der API-Call zum Zugriff auf eine archivierte E-Mail dient dazu, eine E-Mail (incl. etwaiger Attachements) aus dem Archiv zu holen. Da jede E-Mail im Archiv eindeutig identifiziert ist, erfolgt der Zugriff über diesen eindeutigen Identifyer. 
  
-===== Syntaxbeispiel für den Abruf einer E-Mail aus dem Archiv  =====+===== Abruf einer E-Mail aus dem Archiv  =====
  
 Hinweis: Die URLs werden aus drucktechnischen Gründen teilweise mehrzeilig dargestellt. Sie sind jedoch ohne Leerzeichen usw. in einer Zeile anzugeben!  Hinweis: Die URLs werden aus drucktechnischen Gründen teilweise mehrzeilig dargestellt. Sie sind jedoch ohne Leerzeichen usw. in einer Zeile anzugeben! 
Zeile 176: Zeile 177:
 Die aus dem Archiv gelesene E-Mail wird standardmäßig als JSON Objekt an das aufrufende Programm zurückgegeben. Mittels der Option format kann die Rückgabe der E-Mail im „raw“ Format, also RFC 822 bzw. RFC 2822 (Plaintext) erzwungen werden.  Die aus dem Archiv gelesene E-Mail wird standardmäßig als JSON Objekt an das aufrufende Programm zurückgegeben. Mittels der Option format kann die Rückgabe der E-Mail im „raw“ Format, also RFC 822 bzw. RFC 2822 (Plaintext) erzwungen werden. 
  
-  *format: „raw“, wenn die Mail im RFC-822 Format zurückgegeben werden soll.+  * format=raw - E-Mail im RFC-822 Format anfordern 
 +  * skipUTF8Recode=true - E-Mail im Orginal zurück geben 
 +  * header=true - Secret Header zurück geben
  
 +**Achtung!** Um eine E-Mail aus dem Repo zum Re-Indexieren ist es erforderlich, die E-Mail ohne Anpassung des Encodings zu laden. Daher ist hier der Parameter //skipUTF8Recode=true// zwingend erforderlich.
 ===== Rückgabewerte eines Abrufs einer E-Mail aus dem Archiv  ===== ===== Rückgabewerte eines Abrufs einer E-Mail aus dem Archiv  =====
 ==== Resultatwerte (HTTP-Fehlercodes der Suchoperation):  ==== ==== Resultatwerte (HTTP-Fehlercodes der Suchoperation):  ====
Zeile 188: Zeile 192:
    
  
-===== Syntaxbeispiel für den Abruf eines Attachments einer E-Mail im Archiv  =====+===== Abruf eines Attachments einer E-Mail im Archiv  =====
  
 Ein Attachment kann über den Dateinamen oder über die Attachment-Id referenziert werden. Ein Attachment kann über den Dateinamen oder über die Attachment-Id referenziert werden.
Zeile 271: Zeile 275:
   "found":14    "found":14 
 } }
-</code> +</code> 
 +===== Aufbau der Ergebnisliste ===== 
 + 
 +Bei einer Suche wird ausschließlich auf den Index von Benno MailArchiv zugegriffen. Alle hier aufgeführten Werte entsprechen direkt dem Inhalt des Indexes, während eine E-Mail bei der Anzeige aus dem Repo gelesen und für die Anzeige gesondert geparst wird. 
 + 
 +==== Zeitstempel (Date) ==== 
 + 
 +Beim Indexieren wird der Zeitstempel aus dem Date-Header in die Zeitzone UTC konvertiert und in das entsprechende Index-Feld geschrieben. Bei Anzeige einer E-Mail wird dieser Wert in die lokale Zeitzone konvertiert. 
 + 
 +Beim direkten Zugriff auf das REST-API muss daher darauf geachtet werden, den Inhalt von //"Date"// in die jeweils lokale Zeitzone zu konvertieren. 
 + 
 + 
 +====== Repräsentation als Array ======
  
 Die Repräsentation dieses Suchergebnisses in einer Programmiersprache wie bspw. PHP oder Perl könnte bspw. so aussehen: Die Repräsentation dieses Suchergebnisses in einer Programmiersprache wie bspw. PHP oder Perl könnte bspw. so aussehen:
rest_api.1554363447.txt.gz · Zuletzt geändert: 2019/04/04 07:37 von lwsystems