2017-05-08 4 views
0

Ich verwende derzeit die Marklogic spring boot Demo. Bisher war es mir möglich, Indizes, Facetten, Front-End-Logik usw. hinzuzufügen.Marklogic Spring Boot - Installation eines Rest-Endpunkts

Im Moment versuche ich, einige semantische Logik in einen Rest-Endpunkt zu schichten.

Ich schrieb eine einfache Abfrage in der Abfrage-Konsole und versucht es zu dem src/main/ext Ordner hinzufügen, so dass es durch die ml-gradlebootrun bekommen eingesetzt würde.

Gerade jetzt. Diese Datei wird auf die test-modules Datenbank erhalten entfaltet, und sichtbar einmal gespeichert (ich es im Explorer unter URI /ext/my-endpoint sehen kann. Ich habe auch versucht, einen Ordner Hinzufügen rest-api genannt, aber fügt hinzu, dass es nur zu /ext/rest-api/my-endpoint

An der Spitze der Endpunkt ich habe es als `Modul Namensraum ext erklärt =„http://marklogic.com/rest-api/resource/my-endpoint“;.

Allerdings, wenn ich an die URL navigieren sollte es bei http://localhost:8090/LATEST/resources/my-endpoint?

leben werden mir es sagt es nicht existiert

So kann ich es in der Moduldatenbank sehen, aber ich kann es nicht auf HTTP verwenden. die Abfrage funktioniert in der Abfrage-Konsole (und ist ziemlich trivial und-Abfrage von json-property-Wort-Anfragen)

Meine Frage ist:

Wie kann ich den Marklogic-Feder-Boot-Rahmen richtig aktualisieren, um Rest-Endpunkte ordnungsgemäß bereitstellen.

Antwort

1

Also habe ich herausgefunden, es scheint.

Das manuelle Erstellen der Datei registriert den Verteilungsworkflow nicht ordnungsgemäß.

Stattdessen erstelle ich die Ressource ml-gradle

gradle mlCreateResource -PresourceName=my_endpoint

Verwendung dieses wird erstellen Sie einen neuen Ordner mit dem Namen Dienste, und erstellen Sie den Endpunkt für mich, die dann Code über geschrieben haben.

Immer noch nicht sicher, was Gradle speziell macht, so kann ich wissen, was der richtige Weg, dies manuell zu tun wäre, aber zumindest funktioniert es.

+1

Ja, Sie müssen es in 'src/main/ml-modules/services /' setzen, der Inhalt dieses Ordners wird in einer speziellen Weise behandelt und nicht nur in die Moduldatenbank hochgeladen, wie der Inhalt von 'src/Haupt/ml-Module/ext/'. Dies liegt daran, dass REST-Erweiterungen mit einem speziellen http-Aufruf gegen die REST-API installiert werden müssen: http://docs.marklogic.com/REST/PUT/v1/config/resources/[name] – grtjn

+1

Etwas mehr Informationen darüber, wie ml- Gradle lädt die verschiedenen Arten von Modulen, die von der Client-REST-API unterstützt werden - https://github.com/marklogic-community/ml-gradle/wiki/How-modules-are-loaded – rjrudin