Как изменить контекст REST, сгенерированный enunciate? - PullRequest
5 голосов
/ 17 августа 2011

У меня есть следующая аннотация в моем коде RESTEasy:

@Path("/v1/authenticateService")

Enunciate создает "точку монтирования" в документации как:

/rest/v1/authenticateService/authenticate

Я попытался использовать следующее вмой enunciate.xml, чтобы переопределить контекст "/ rest":

<services>
    <rest defaultRestSubcontext="/gateway-service-access-pox" />
</services>

Я также попробовал следующее, но он ничего не сделал, либо:

<deployment protocol="https" host="(host)" context="/gateway-service-access-pox" />

IЯ использую Enunciate 1.23 для создания документов для многомодульного проекта Maven 3.

Вот что записано на консоли:

[INFO] --- maven-site-plugin:3.0:site (default-cli) @ gateway-service-access-pox ---
[INFO] configuring report plugin org.apache.maven.plugins:maven-project-info-reports-plugin:2.4
[INFO] configuring report plugin org.codehaus.enunciate:maven-enunciate-plugin:1.23
[WARNING] No project URL defined - decoration links will not be relativized!
[INFO] Rendering site with org.apache.maven.skins:maven-default-skin:jar:1.0 skin.
[INFO] Generating "About" report    --- maven-project-info-reports-plugin:2.4
[INFO] Generating "Web Service API" report    --- maven-enunciate-plugin:1.23
[INFO] initializing enunciate.
[INFO] invoking enunciate:generate step...
[INFO] invoking enunciate:compile step...
[INFO] invoking enunciate:build step...
[INFO] closing enunciate.

Есть идеи, что я делаю не так?

Подробнее ... Полный enunciate.xml (вЕсли есть проблема, влияющая на запись:

<?xml version="1.0"?>
<enunciate label="platform-gateway-api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.23.xsd">

<api-import pattern="com.intuit.platform.gateway.common.DetailedResponse" />
<api-import pattern="com.intuit.platform.gateway.service.access.domain.*" />
<api-import pattern="com.intuit.platform.gateway.service.identity.domain.Identity" />

<deployment protocol="https" host="(host)" context="/gateway-service-access-pox" />

<namespaces>
    <namespace uri="http://schema.intuit.com/platform/integration/detailedResponse/v1" id="common" />
    <namespace uri="http://schema.intuit.com/platform/identity/user/v1" id="user" />
    <namespace uri="http://schema.intuit.com/platform/access/token/v1" id="token" />
</namespaces>

<services>
    <rest defaultRestSubcontext="/gateway-service-access-pox" />
</services>

<modules>
    <!-- Docs -->
    <docs splashPackage="com.intuit.platform.gateway.service.ticket.api" title="Platform Gateway Access API"
        copyright="Intuit Inc">
        <download name="License" file="LICENSE.txt" description="The license file governing the use of this API." />
    </docs>
    <!-- Disable all the client generation tools -->
    <basic-app disabled="true" />
    <c disabled="true" />
    <csharp disabled="true" />
    <java-client disabled="true" />
    <jaxws-client disabled="true" />
    <jaxws-ri disabled="true" />
    <jaxws-support disabled="true" />
    <jersey disabled="true" />
    <obj-c disabled="true" />
    <xml disabled="true" />
</modules>
</enunciate>

Кстати, если есть лучший способ получить помощь по этому вопросу (какой-то форум ошибок), пожалуйста, дайте мне знать. Я новичок в enunciateи не знал, было ли это ошибкой или моим невежеством.

Ответы [ 2 ]

2 голосов
/ 21 декабря 2011

как сказал Райан, "defaultRestSubcontext" работает. Например, я использовал его таким образом, чтобы удалить «rest» из сгенерированной по умолчанию точки монтирования:



Если установить значение defaultRestSubcontext равным "/", генерация начинается с "/", а затем следует путь к конечной точке.

P.S. Я использую Enunciate 1.24

1 голос
/ 04 октября 2012

Хорошо ... У меня есть пара дней, и, наконец, это работает, и точка монтирования имеет правильный подконтекст rest по умолчанию:)

2 Что я сделал, чтобы это работало.

  1. включить модуль XML

    <xml disabled="false" />
    
  2. Добавить банку enunciate-xml во время выполнения.

Я не знаюЯ не знаю, почему это так, но сейчас это работает для меня.

...