<!--
  Copyright JS Foundation and other contributors, http://js.foundation

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<script type="text/x-red" data-help-name="http in">
    <p>Erstellt einen HTTP Endpunkt zur Erzeugung von Web Services.</p>
    <h3>Outputs</h3>
    <dl class="message-properties">
        <dt>Nutzdaten</dt>
        <dd>Für eine GET-Anforderung ist ein Objekt mit beliebigen Parametern der Abfragezeichenfolge oder der 
            Hauptteil (Body) der HTTP-Anforderung enthalten</dd>
        <dt>req<span class="property-type">Objekt</span></dt>
        <dd>Ein HTTP Anforderungsobjekt. Dieses Objekt enthält mehrere Eigenschaften, 
            die Informationen zu der Anforderung bereitstellen.
            <ul>
             <li><code>body</code> - Der Hauptteil der eingehenden Anforderung. Das Format hängt von der Anforderung ab.</li>
             <li><code>headers</code> - ein Objekt, dass den HTTP Header enthält.</li>
             <li><code>query</code> - ein Objekt, dass die Anfrage Parameter enthält.</li>
             <li><code>params</code> - ein Objekt, dass die Routing Parameter enthält</li>
             <li><code>cookies</code> - ein Objekt, dass die Cookies der Anfrage enthät..</li>
             <li><code>files</code> - wenn die Funktion aktieviert ist, enthält dieses Objekt alle Dateien, 
                die mit der POST-Anforderung gesendet wurden.</li>
            </ul>
        </dd>
        <dt>res<span class="property-type">Objekt</span></dt>
        <dd>Ein HTTP-Antwortobjekt. Diese Eigenschaft sollte nicht direkt verwendet werden.
            Der <code>HTTP Response</code> Knoten dokumentiert, wie auf eine Anforderung reagiert wird.
            Diese Eigenschaft muss an die Nachricht angehängt bleiben, die an den Antwortknoten übergeben wird.</dd>
    </dl>
    <h3>Details</h3>
    <p> Der Knoten ist auf dem konfigurierten Pfad für Anforderungen eines bestimmten Typs empfangsbereit.
        Der Pfad kann vollständig angegeben werden, z. B. <code>/user</code> oder benannte Parameter beinhalten, 
        die einen beliebigen Wert akzeptieren, z. B. <code>/user/:name</code>.
        Wenn benannte Parameter verwendet werden, kann auf ihren tatsachlichen Wert über <code> msg.req.params</code> 
        zugegriffen werden. </p>
    <p> Für Anforderungen, die einen Hauptteil enthalten, wie z.B. POST oder PUT, wird der Inhalt der 
        Anforderung über <code>msg.payload</code> verfügbar gemacht.</p>
    <p> Wenn der Inhaltstyp der Anforderung ermittelt werden kann, wird der Hauptteil syntaktisch analysiert.
        Wenn zum Beispiel <code> application/json</code> erkannt wurde, die Darstellung in der JavaScript-Objekt Notation. </p>
    <p> <b> Hinweis:</b> Dieser Knoten sendet keine Antwort an die Anforderung. Der Flow 
        muss einen code>HTTP Response</code> Knoten enthalten, um die Anforderung abzuschließen. </p>
</script>

<script type="text/x-red" data-help-name="http response">
    <p>Sendet Antworten auf Anforderungen, die von einem code>HTTP In</code> Knoten empfangen wurden. </p>
    <h3>Eingaben</h3>
    <dl class="message-properties">
        <dt>payload <span class="property-type">Zeichenfolge</span> </dt>
        <dd>Der Hauptteil der Antwort.</dd>
        <dt class="optional">statusCode<span class="property-type">Zahl</span> </dt>
        <dd>Wenn festgelegt wird diese als Antwortstatuscode verwendet. Standardwert: 200. </dd>
        <dt class="optional">Header<span class="property-type">Objekt</span> </dt>
        <dd> Wenn festgelegt enthält es die HTTP-Header, die in die Antwort mit eingeschlossen werden sollen. </dd>
        <dt class="optional">Cookies<span class="property-type">Objekt</span> </dt>
        <dd> Wenn festgelegt kann es zum Setzen oder Löschen von Cookies verwendet werden. </dd>
    </dl>
    <h3>Details</h3>
    <p>Der <code>StatusCode</code> und die <code>Header</code> können auch innerhalb des Knoten gesetzt werden. 
        Wenn eine Eigenschaft innerhalb des Knotens festgelegt wird, 
        kann sie nicht durch die entsprechende Nachrichteneigenschaft überschrieben werden.</p>
    <h4>Behandlung von Cookies</h4>
    <p> Die Eigenschaft <code>Cookies</code> muss ein Objekt mit Name/Wert-Paaren sein.
    Bei dem Wert kann es sich entweder um eine Zeichenfolge handeln, um den Wert des Cookies mit Standardwert festzulegen 
    oder es kann ein Objekt mit Optionen sein. <p>
    <p> Im folgenden Beispiel werden zwei Cookies festgelegt - einer mit dem Namen <code>name</code> mit
    einem Wert von <code>nick</code> und der andere als <code>session</code> mit einem Wert von 
    <code>1234</code> und einer festgelegten Ablaufzeit von 15 Minuten. </p>
    <pre>
msg.cookies = {
    name: 'nick',
    session: {
        value: '1234',
        maxAge: 900000
    } } </pre>
    <p>Die gültigen Optionen sind: </p>
    <ul>
    <li><code>Domäne</code> -(Zeichenfolge) Domänenname für das Cookie </li>
    <li><code>expires</code> -(Datum) Ablaufzeit in GMT. Wenn Sie keinen Wert angeben oder auf 0 setzen, wird ein Sitzungscookie erstellt. </li>
    <li><code>maxAge</code> -(Zeichenfolge) Ablaufzeit in Bezug auf die aktuelle Zeit in Millisekunden </li>
    <li><code>Pfad</code> -(String) Pfad für das Cookie. Standardwert: / </li>
    <li><code>value</code> -(String) der Wert, der für das Cookie verwendet werden soll </li>
    </ul>
    <p> Um ein Cookie zu löschen, setzen Sie seinen  <code>value</code> auf <code>null</code>. </p>

</script>