[ 
https://issues.apache.org/jira/browse/AMBARI-20436?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jaimin Jetly updated AMBARI-20436:
----------------------------------
    Status: Patch Available  (was: Open)

> Create a prototype of ambari-server swagger integration
> -------------------------------------------------------
>
>                 Key: AMBARI-20436
>                 URL: https://issues.apache.org/jira/browse/AMBARI-20436
>             Project: Ambari
>          Issue Type: Task
>          Components: ambari-server, ambari-web
>    Affects Versions: 3.0.0
>            Reporter: Jaimin Jetly
>            Assignee: Jaimin Jetly
>             Fix For: 3.0.0
>
>         Attachments: AMBARI-20436.patch
>
>
> As part of this task, following changes are done:
> # A separate branch is created for this work: ambari-rest-api-explorer
> # Users, Groups and Views API are integrated with swagger and exposed from 
> ambari rest api explorer ui (swagger ui) on a deployed cluster at path: 
> http://c6404.ambari.apache.org:8080/api-docs
> # swagger-maven-plugin is used to generate swagger.json file on compile time. 
> This file is published in web resources directory. Note that this file is 
> generated build time and will be available on deployed ambari-server host at 
> web resources location but it is not yet decided to be committed and 
> maintained in Ambari source code
> # swagger2markup-maven-plugin is used to generate asciidoc from swagger.json 
> file (that can be shown as markdown in github). More information about this 
> format an be found at http://asciidoc.org/ and http://asciidoctor.org/. This 
> generates files in docs/api/asciidoc/** location at build time. This 
> directory is currently intended to be committed and maintained in ambari 
> source code
> # swagger-ui (version: v2.1.1-M2) compiled code with the different css skin 
> (adopted from [link|https://github.com/jensoleg/swagger-ui]) is committed to 
> ambari-web/api-docs directory with certain modification to make it work with 
> ambari api. Further ui polishing will be done in subsequent tasks. Also there 
> is a strong possibility to maintain the fork code of swagger-ui and compile 
> (minify and concanate) it during ambari compile time rather than directly 
> using swagger-ui dist files. Doing so will help when customization done over 
> swagger-ui will increase
> # swagger-annotation expects application to define schema of request body and 
> response for each endpoint to be encapsulated in a class. While Ambari 
> follows this pattern for some of the endpoint, there are many others which 
> does not do so. For The ones which do not does so, new request and response 
> classes were defined. Going forward at the completion of this epic, either 
> each resource type or each resource provider should be coupled with a 
> resource response class and a resource request class. As part of this patch, 
> each resourceprovider worked upon introduces a new method "getResponse". At 
> completion of this epic ResourceProvider interface should also declare 
> methods like "getResponse" and "getRequest" that returns response schema and 
> request schema instances for the resource API endpoints
> #  Currently it seems that swagger has a limitation in supporting  
> "subresource locator methods". This issue is been reported to swagger 
> community and is being tracked at 
> [link|https://github.com/swagger-api/swagger-core/issues/2136] . As a result 
> of which currently as a temporary workaround, all subresources are converted 
> to root resources. Also all root resources on similar path are moved under 
> same subpackages.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to