2017-01-25 5 views
1

Ich habe eine benutzerdefinierte Rest-Erweiterung und die WS hatte sowohl GET und POST. Was mir aufgefallen ist, dass benutzerdefinierte Ruhe-Endpunkte keine Content-type:application/x-www-form-urlencoded akzeptieren. Warum ist das so? Wie kann ich zulassen, dass mein benutzerdefinierter Ruhe-Endpunkt Content-type:application/x-www-form-urlencoded akzeptiert?Marklogic benutzerdefinierte Rest-API-Endpunkt Inhaltstyp Problem

Und auch out-of-box Such Endpunkt v1/search das Gegenteil der Fall ist, es nicht Content-type:multipart/form-data akzeptieren ..

Auch eine andere Sache, die ich bemerkt, in Endpunkt benutzerdefinierte Rest, wenn ich rs:start=1 senden sie behandelt ihn als xs:string. Aber im Out-of-Box-Endpunkt konvertiert es zu xs:unsingedLong .. Ich grabe in den tatsächlichen Code für out-of-Box und konnte nicht finden, wo es die implizite Konvertierung macht.

Antwort

0

In Bezug auf die Parametertypen, Wenn Sie eine REST-Erweiterung installieren, können Sie den Typ angeben. Siehe Installing a Resource Service Extension.

+0

Cool, ich don t wissen, wie ich die Angabe der Art verpasst .. Vielen Dank für den Zeiger – Ravi

1

Eine Ressourcendienst-Erweiterung ist ein serverseitiges Plug-in für den integrierten Dienst, der vordefinierte HTTP-Anforderungen unterstützt und die Verwaltung der HTTP-Interaktion für Sie übernimmt.

Wenn Sie einen benutzerdefinierten Endpunkt mit vollständiger Kontrolle über die HTTP-Interaktion wünschen, empfiehlt es sich, für dieselbe Inhaltsdatenbank einen separaten Anwendungsserverport zu verwenden.

Die Tatsache, dass ein Wert in eine Ganzzahl umgewandelt werden kann, ist keine Garantie dafür, dass der Wert in eine ganze Zahl umgewandelt werden soll. Die Anwendung erwartet möglicherweise eine Zeichenfolge oder ein Double.

Im benutzerdefinierten Code ist es trivial, den Wert einer Ganzzahl zu berücksichtigen, wenn dies erwartet wird.

der Hoffnung, dass hilft,

+0

Dank Dave, ich die Parametertypen einstellen können .. aber meine erste Frage ist, was ist der Grund für die Blockierung des benutzerdefinierten Rest-Endpunkts? Content-type: application/x-www-form-urlencoded? – Ravi

+0

Der Kommentar denkt immer noch an eine Ressourcen-Service-Erweiterung als benutzerdefinierten REST-Endpunkt. Es ist nicht. – ehennum