2017-05-07 1 views
1

Unsere Appengine-Anwendung besteht aus mehreren Microservices, die in einer Mischung aus Standard- und Flex-Umgebungen eingesetzt werden. Da wir sowohl flex als auch standard verwenden, haben wir jerse gewählt, um unsere Backend-Dienste zu implementieren, da das Endpunkt-Framework nicht mit flex funktioniert. Wir können diese Kombination aus Jersey + Appengine Standard + Endpoint nicht herstellen. Wenn wir den Swagger mithilfe des gcloud Cloud-Managers bereitstellen, wird keine Verknüpfung mit den Back-End-Diensten hergestellt.Jersey mit Appengine Standard und CloudEndpoints

Ich konnte keine Dokumentation zur Integration von App Engine-Standard und Endpunkt finden, ohne Endpunkt-Framework-Annotationen zu verwenden.

Hat jemand implementiert die Restdienst Backends mit der Kombination Jersey + App Engine Standard + Cloud Endpunkte. Ist es möglich, Cloud-Endpunkte und Appendine-Standards zu integrieren, ohne Endpunkt-Framework-Annotationen zu verwenden?

Bitte beachten Sie: Wir haben Jersey + Flex + Endpunkte getestet und es funktioniert.

Antwort

0

Dies ist nicht getestet oder dokumentiert, Sie spielen also in einem neuen Bereich. Es sollte funktionieren, und ich freue mich, versuchen zu helfen und es zu debuggen. Um Endpoints auf Standard mit Flex zu verwenden, müssen Sie dies tun:

  1. Einschließlich dieser Abhängigkeit:

    <dependency> <groupId>com.google.endpoints</groupId> <artifactId>endpoints-management-control-appengine-all</artifactId> <version>${endpoints.management.version}</version> </dependency>

  2. Fügen Sie diese Konfiguration zu Ihrem web.xml, dann fügen Sie ein filter-mapping gehen vor von Jersey:

    <filter> <filter-name>endpoints-api-controller</filter-name> <filter-class>com.google.api.control.extensions.appengine.GoogleAppEngineControlFilter</filter-class> <init-param> <param-name>endpoints.projectId</param-name> <param-value>${endpoints.project.id}</param-value> </init-param> <init-param> <param-name>endpoints.serviceName</param-name> <param-value>echo-api.endpoints.${endpoints.project.id}.cloud.goog</param-value> </init-param> </filter>

  3. Ihre OpenAPI sp hochladen Eichung mit gcloud service-management deploy.
  4. In appengine-web.xml, eine Umgebungsvariable Definition hinzufügen:

    <env-variables> <env-var name="ENDPOINTS_SERVICE_NAME" value="echo-api.endpoints.${endpoints.project.id}.cloud.goog" /> </env-variables>