2015-03-28 1 views
0

Я пытался сделать подобный подход:Руководство использовать расширение Restlet Swagger для GAE

public Restlet createInboundRoot() { 
     Router apiRouter = createApiRouter(); 
     attachSwaggerSpecificationRestlet(apiRouter, "/api-docs"); 
     return apiRouter; 
} 

Когда /api-docs является Restlet доступ Выдает Error 404, что может быть баловаться. Идея состоит в том, что apiRouter, который у нас есть, полностью работает в этом состоянии, когда мы используем ресурс как /stuff и т. Д.

Что может отсутствовать в этом коде? Или есть ли какие-либо конкретные примечания, которые следует учитывать при использовании расширения Restlet Swagger для GAE?

ответ

1

Я проверил свой USECASE и я могу сделать работу расширение Кураж со следующей конфигурацией Maven (restlet-version = 2.3.1) AE DEV сервер:

<dependencies> 
    <dependency> 
     <groupId>org.restlet.gae</groupId> 
     <artifactId>org.restlet</artifactId> 
     <version>${restlet-version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.restlet.gae</groupId> 
     <artifactId>org.restlet.ext.servlet</artifactId> 
     <version>${restlet-version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.restlet.gae</groupId> 
     <artifactId>org.restlet.ext.swagger</artifactId> 
     <version>${restlet-version}</version> 
     <exclusions> 
      <exclusion> 
       <groupId>org.raml</groupId> 
       <artifactId>raml-parser</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

    <dependency> 
     <groupId>org.restlet.jse</groupId> 
     <artifactId>org.restlet.ext.jetty</artifactId> 
     <version>${restlet-version}</version> 
    </dependency> 
</dependencies> 

Вы можете заметить, что я должен был исключить Raml анализатор в пределах ext.swagger.

Вот код моего Restlet применения:

public class RestletApplication extends SwaggerApplication { 
    @Override 
    public Restlet createInboundRoot() { 
     Router router = new Router(getContext()); 

     router.attach("/ping", MyServerResource.class); 
     attachSwaggerSpecificationRestlet(router, "/docs"); 

     return router; 
    } 
} 

Если это может помочь, я могу предоставить мой тестовый проект в хранилище Github.

Надеюсь, вам это поможет

+0

Нужно ли «org.restlet.ext.jetty»? – xybrek

+0

Я получаю эту ошибку http://pastekit.com/j6vQR – xybrek

+0

Прошу прощения. Я добавил его для тестирования в контейнере сервлетов и в режиме GAE, чтобы убедиться, что проблема не связана только с GAE. Я просто сделал тест без расширения 'ext.jetty', и он все еще работает ... –