Представить контракт RAML вместо WADL в CXF

Я новичок в мире REST, и в большинстве примеров CXF, которые я видел, есть конфигурация для предоставления WADL в службах REST при публикации.

Что-то типа

Available RESTful services:
Endpoint address: http://localhost:8080/ouat-servicesImpl/api
WADL : http://localhost:8080/ouat-servicesImpl/api?_wadl

Затем при нажатии

<application>
  <grammars/>
  <resources base="http://localhost:8080/ouat-servicesImpl/api">
    <resource path="/topics">
      <method name="POST">
        <request>
          <representation mediaType="application/json"/>
        </request>
        <response>
          <representation mediaType="application/json"/>
        </response>
      </method>
    </resource>
  </resources>
</application>

Я изучал RAML и его преимущества при создании контрактов. Есть ли способ показать контракт RAML на этой «домашней» странице службы CXF? Или я смешиваю концепции/цели RAML и WADL? На самом деле я думаю, что оба способа раскрывают контракт на обслуживание, однако, на мой взгляд, RAML более полный.


person arthurfnsc    schedule 05.06.2015    source источник
comment
Оба описывают контракт. Но в наши дни RAML становится популярным. Насколько я знаю, WADL потерпел неудачу.   -  person Manmay    schedule 05.06.2015
comment
Да, это именно то, что я слышу. Знаете ли вы, есть ли какой-нибудь способ раскрыть этот RAML-контракт, когда служба предоставляется с помощью CXF?   -  person arthurfnsc    schedule 05.06.2015
comment
Вы можете открыть свой файл RAML с помощью URL-адреса, как и WSDL. Вы также можете взглянуть на swagger, который также поддерживает RAML. Swagger предоставляет пользовательский интерфейс для обнаружения, документирования и тестирования конечных точек REST.   -  person Manmay    schedule 08.06.2015
comment
Я посмотрю на Swagger... спасибо @Manmay   -  person arthurfnsc    schedule 09.06.2015
comment
однако, на мой взгляд, RAML более совершенен. На самом деле RAML менее совершенен BY DESIGN. RAML был намеренно создан для определения практически RESTful-проектов, потому что на самом деле почти никто из тех, кто использует REST, на самом деле не использует REST. Если бы RAML мог указывать только службы RESTful, никто бы не смог применить его для существующих проектов. Это не означает, что нужно копаться в RAML, авторы объясняют все это в документации. Это было тщательно продуманное конструкторское решение.   -  person Steven Byks    schedule 06.04.2016


Ответы (1)


Предполагая, что вы упаковываете свою службу CXF как WAR, вот как вы можете достичь своей цели на основе реального проекта, над которым я работаю:

Бонусный балл за:

person David Dossot    schedule 06.06.2015